Как остановить повторный вызов onCreate при запуске приложения на устройстве Kindle Fire?

Я разработал приложение для Android с двумя экранами. Приложение хорошо работает с устройствами Android. Но я установил приложение на планшет amazon kindle fire, запустил приложение, и оно запустилось хорошо. Я перешел с 1-го экрана на 2-й экран и нажал кнопку «Домой». И снова я запустил приложение из меню приложений. приложение показывает 1-й экран вместо 2-го экрана. Обычное поведение Android должно показывать второй экран.

Что я знаю, так это то, что при нажатии кнопки «Домой» приложение перейдет в состояние onPause() и запустит значок запуска формы приложения, он перейдет на Resume и покажет экран, где он был ранее. Но приложение каждый раз вызывает onCreate при запуске из значка запуска. Это произошло только на планшете Amazon kinlde fire.

Я начинаю 2-е действие с 1-го, используя startActivity(intent); метод Могу ли я использовать любой флаг для планшета Kindle Fire.

Пожалуйста, предложите мне как можно скорее. Заранее спасибо.


person Raghu Mudem    schedule 16.08.2012    source источник


Ответы (1)


Android не гарантирует, что после того, как вы нажмете back из действия, оно останется в состоянии onPause. Это зависит от того, насколько агрессивен убийца памяти или насколько мало памяти устройства. Это означает, что не рассчитывайте, что ваше приложение когда-либо будет находиться в состоянии onPause.

Что вы можете сделать, так это сохранить состояние активности в общих настройках и позволить объекту Application запускать соответствующую активность, восстанавливая состояние пользовательского интерфейса, если это необходимо.

person Aswin Kumar    schedule 16.08.2012
comment
Не могли бы вы дать мне какую-нибудь идею кода для этой концепции. Спасибо - person Raghu Mudem; 16.08.2012
comment
Сделайте что-нибудь вроде этого: скажите, что вы находитесь в actvityA. В onPause() напишите общую настройку, скажем, currentActivity, со значением, равным activityA.class.getSimpleName(). При повторном запуске приложения будет создан объект Application (если вы не знакомы с концепцией объектов Application, вы можете увидеть здесь, здесь или просто Google). Здесь вы получаете предпочтение, проверяете, установлено ли для него значение activityA или activityB, и запускаете его. - person Aswin Kumar; 16.08.2012