Как проверить код, созданный для сохранения/восстановления жизненного цикла активности?
Как я могу проверить все следующие методы кода? Я хочу играть в сценарии, когда все они видят, работает ли мой код для сохранения/восстановления процесса. Итак, что мне делать в эмуляторе, чтобы проверить все методы?
public class Activity extends ApplicationContext {
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestoreInstanceState(Bundle savedInstanceState);
protected void onSaveInstanceState(Bundle savedInstanceState);
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
Ответы
Ответ 1
onCreate
, onStart
и onResume
будут запускаться при запуске приложения, нет необходимости в дальнейшем взаимодействии. onPause
, onStop
и onDestroy
будут работать при выходе из системы, например. несколько раз нажмите кнопку "Назад".
Чтобы протестировать onRestart
, onSaveInstanceState
и onRestoreInstanceState
, после запуска приложения попробуйте нажать кнопку "Домой", запустив некоторые другие приложения, чтобы ваша активность была убита, а затем снова запустите приложение.
Использование журнала для проверки того, были ли методы вызваны.
(Документация по жизненному циклу работы: http://developer.android.com/guide/topics/fundamentals.html#actlife)
Ответ 2
Если на вашем устройстве включено Параметры разработчика, есть опция Не выполнять действия, что поможет проверить onRestoreInstanceState()
.
Ответ 3
У нас возникла проблема, связанная с перезагрузкой приложения после длительного периода бездействия. Мы обнаружили, что "Не выполнять действия" не воспроизводит проблему, но Background process settings :: No background processes
в настройках Dev (даже при отладке).
Ответ 4
Для тестирования onSaveInstanceState и onRestoreInstanceState вы можете использовать либо инструмент SetAlwaysFinish (см. ссылку ниже), либо приложение DevTools, включенное в эмулятор.
http://bricolsoftconsulting.com/how-to-test-onsaveinstancestate-and-onrestoreinstancestate-on-a-real-device/
Оба этих приложения используют скрытый параметр AlwaysFinish, который является частью класса ActivityManagerNative для изменения поведения ОС Android. В соответствии с новым поведением ОС будет выгружать любую активность, как только она покидает экран, вызывая событие onSaveInstanceState. Когда ОС захочет вернуть активность, она вызовет событие onRestoreInstanceState.
В приведенной выше ссылке объясняется, как использовать приложение SetAlwaysFinish для тестирования ваших приложений onSaveInstanceState и onRestoreInstanceState. Если вы хотите использовать DevTools, включите "Настройки разработки" > "Немедленно уничтожить действия".
Ответ 5
Есть еще один способ проверить эти события. Сначала вам нужно перейти к определенному действию, которое вы хотите проверить, затем нажмите кнопку "Домой" и перейдите на монитор устройства Android.
![Местоположение монитора Android]()
![Пример монитора Android-устройств]()
В этом инструменте вы можете выбрать поток приложения и убить его кнопкой остановки.
Наконец, вы должны открыть приложение из истории, и поток будет снова создан.