2015-12-24 2 views
3

У меня есть два вида деятельности: A и B.Состояние восстановления пользовательского интерфейса Android на домашней кнопке?

Приложение от A до B. (A -> B).

Когда я нахожусь на B и нажимаю кнопку «Назад» (кнопка назад), состояние и пользовательский интерфейс A восстанавливаются успешно (вызывается onResume()). Проблема заключается в том, что когда я нажимаю кнопку home (стрелка Actionbar), предыдущая операция A вызывает onCreate(), поэтому ее состояние и пользовательский интерфейс не будут восстановлены, как при нажатии кнопки «Назад».

Почему это происходит? Как я могу это решить?

+0

Вы добавили навигацию к файлу манифеста? –

+0

Как вам удалось это сделать? –

ответ

0

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

Вы должны переопределить слушатель, который вызывается при нажатии затем нажмите кнопку и вызовите finish(). Таким образом, поведение будет таким же, как нажатие кнопки возврата устройства.

0

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

Google имеет большое обсуждение на веб-сайте разработчиков. Каждый раз, когда вы покидаете приложение, вы должны сохранять информацию, необходимую для воссоздания последнего состояния Activity A, потому что система может удалить ваше приложение из кеша в любое время после его закрытия. Поэтому сохраните важные ключи db и т. Д. В файл в системе с этими ключами, необходимыми для перезагрузки активности. Это также будет обрабатывать изменения ориентации для вас. Важными методами жизненного цикла являются onPostResume для восстановления состояния и onStop и onDestroy для сохранения состояния.

Читайте также о жизненном цикле деятельности.

 Смежные вопросы

  • Нет связанных вопросов^_^