Как проверить код, созданный для сохранения / восстановления жизненного цикла действия? - PullRequest
37 голосов
/ 28 марта 2010

Как я могу проверить все следующие методы кода? Я хочу играть в сценарии, когда все они происходят, чтобы увидеть, работает ли мой код для процесса сохранения / восстановления действия. Так что мне делать в эмуляторе, чтобы проверить все методы?

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();
 }

Ответы [ 4 ]

147 голосов
/ 27 октября 2013

Если вы включили Параметры разработчика на своем устройстве, есть опция Не сохранять действия , которая поможет проверить onRestoreInstanceState().

Android Settings panel

13 голосов
/ 21 ноября 2014

У нас была проблема, из-за которой перезапускал приложение после длительного периода бездействия. Мы обнаружили, что «Не держать действия» не воспроизводило проблему, но Background process settings :: No background processes в настройках разработчика (даже во время отладки).

8 голосов
/ 24 декабря 2011

Для тестирования 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, включите «Настройки разработки»> «Немедленно уничтожить действия».

2 голосов
/ 27 декабря 2017

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

Android device monitor location

Android device monitor example

В этом инструменте вы можете выбрать поток Приложения и убить его кнопкой остановки. Наконец, вам нужно открыть приложение из истории, и поток будет воссоздан заново.

...