Intereting Posts

Как протестировать Activity onDestroy method

Мне нужно проверить метод Activity onDestroy за которым следуют onCreate и onRestoreInstanceHandle . Я знаю один способ сделать это – изменить ориентацию экрана. Но есть еще одна ситуация, когда активность уничтожается – для другого приложения нужны ресурсы, и в какой-то момент Android решает уничтожить фоновые действия. Тем не менее, он все еще может быть восстановлен, с Bundle доступны. Есть ли способ моделировать такую ​​ситуацию?

Я не уверен, какая версия Android стала доступной, но, по крайней мере, у Jelly Bean, есть опция разработчика, которая делает это очень просто. В разделе «Настройки» → «Параметры разработчика» перейдите к разделу «Службы» и включите опцию « Не выполнять действия» .

Затем, когда вы выходите из приложения (либо с помощью кнопки «Назад», либо с помощью кнопки «Главная»), ОС будет уничтожать активность этого приложения, а не просто приостанавливать его и помещать в фоновом режиме. Однако не забудьте отключить эту настройку, когда вы закончите тестирование.

Вы можете использовать этот пример и записываться в журнал OnDestroy

  @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.finish(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i("test", "OnDestroy is called"); } 
 public class MyActivityTests extends ActivityInstrumentationTestCase2<MyActivity> { public void testLifecycle() { Activity activity = this.getActivity(); //do stuff to the activity this.getInstrumentation().callActivityOnStop(activity); activity = this.getActivity(); // this should call onCreate() and onRestoreInstanceHandle() // write assertions } } 

См. Также: Документы о деятельности, Документы ActivityInstrumentationTestCase2, Документация по инструментам