Как проверить код, созданный для сохранения / восстановления жизненного цикла действия?
Как я могу проверить все следующие методы кода? Я хочу играть в сценарии, когда все они происходят, чтобы увидеть, работает ли мой код для процесса сохранения / восстановления действия. Так что мне делать в эмуляторе, чтобы проверить все методы?
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();
}
5 ответов
onCreate
, onStart
а также onResume
будет запускаться при запуске приложения, дальнейшее взаимодействие не требуется. onPause
, onStop
а также onDestroy
будет работать при выходе, например, при повторном нажатии кнопки "Назад".
Тестировать onRestart
, onSaveInstanceState
а также onRestoreInstanceState
после запуска приложения попробуйте нажать кнопку "Домой", запустив некоторые другие приложения, чтобы убедиться, что ваша активность будет прекращена, а затем снова запустите приложение.
Использование регистрации, чтобы проверить, были ли вызваны методы.
(Документация по жизненному циклу деятельности: http://developer.android.com/guide/topics/fundamentals.html)
Если вы включили Параметры разработчика на своем устройстве, есть опция Не сохранять действия, которые помогут проверить onRestoreInstanceState()
,
У нас была проблема, из-за которой перезапускалось приложение после длительного периода бездействия. Мы обнаружили, что "Не держать деятельность" не воспроизводит проблему, но Background process settings :: No background processes
в настройках Dev делал (даже при отладке).
Для тестирования onSaveInstanceState и onRestoreInstanceState вы можете использовать либо инструмент SetAlwaysFinish (см. Ссылку ниже), либо приложение DevTools, включенное в эмулятор.
Оба эти приложения используют скрытый параметр AlwaysFinish, который является частью класса ActivityManagerNative, чтобы изменить поведение ОС Android. В соответствии с новым поведением ОС будет выгружать любое действие, как только покидает экран, вызывая событие onSaveInstanceState. Когда ОС хочет вернуть действие обратно, она вызовет событие onRestoreInstanceState.
Приведенная выше ссылка объясняет, как использовать приложение SetAlwaysFinish для тестирования событий onSaveInstanceState и onRestoreInstanceState вашего приложения. Если вы хотите использовать DevTools, включите "Настройки разработки"> "Немедленное уничтожение действий".
Инструменты тестирования, предлагаемые Android, теперь предлагают средства написания тестов, которые могут переводить действие из одного состояния в другое или воссоздавать действие для проверки последовательности операций сохранения и восстановления. См. Список возможностей на странице документации для разработчиков Android " Проверка действий приложения". Пример синтаксиса, взятый с этой страницы, следующий:
@RunWith(AndroidJUnit4::class)
class MyTestSuite {
@Test fun testEvent() {
val scenario = launchActivity<MyActivity>()
scenario.moveToState(State.CREATED)
}
}
Есть еще один способ проверить эти события. Сначала вам нужно перейти к определенной активности, которую вы хотите протестировать, затем нажать кнопку "Домой" и перейти к монитору устройства Android.
В этом инструменте вы можете выбрать поток приложения и убить его кнопкой остановки. Наконец, вы должны открыть приложение из истории, и поток будет воссоздан заново.