Как сохранить состояние своей активности при выходе? Android - PullRequest
0 голосов
/ 22 февраля 2010

У меня есть базовое приложение с текстовыми входами, входом с вращением и вторым входом с вращением, чей массив зависит от настройки, измененной в меню «Параметры».

В настоящее время, когда я нажимаю кнопку «Домой» или «Возврат», находясь в приложении, я либо возвращаюсь на рабочий стол, либо перебираю старые входные данные, которые я недавно ввел.

Как я могу запретить моему приложению открывать несколько экземпляров самого себя, чтобы в любой момент времени работал только один экземпляр, а затем как сохранить данные, введенные во входы, и параметры, выбранные в моем меню параметров?

Я немного новичок в Java, поэтому прошу прощения, если это простая проблема.

Ответы [ 2 ]

2 голосов
/ 22 февраля 2010

В ваших действиях переопределить onSaveInstanceState и onRestoreInstanceState. Эти методы позволят вам сохранить данные в Bundle . Вы также можете сохранить данные в Предпочтения . Во всех моих приложениях я переопределяю onSaveInstanceState и onRestoreInstanceState для сохранения и загрузки значений в Bundle. Я также сохраняю данные в настройках в onPause и загружаю настройки в onResume. Также в onCreate (Bundle saveInstanceState) я делаю такую ​​проверку

    if(savedInstanceState != null)
    {
        m_mainView.restoreInstanceState(savedInstanceState);
    }
    else
    {
        m_mainView.loadGameFromDatabase(getPreferences(MODE_PRIVATE));
    }

Эти практики всегда работали для меня.

1 голос
/ 08 июля 2014

Вам придется использовать переопределенный метод onPause в своей активности и сохранять данные где-то (вероятно, в общих настройках). Затем onResume вы должны прочитать их обратно из хранилища персистентности и заполнить элементы управления.

onSaveInstanceState и restoreInstanceState не ваш друг, если вы хотите обрабатывать нажатие кнопок назад или домой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...