Я пытаюсь смоделировать повторное создание активности и фрагментации, а также проверять onsaveinstancestate() и onRestoreInstanceState() и, как правило, проверить, правильно ли я обрабатываю повторное создание активности во всех случаях , например, так же, как при повороте экрана, что заставляет деятельность повторно создавать ее самостоятельно.Имитация активности/создания фрагмента
Но в моем случае я хочу проверить дополнительные параметры/случаи, которые могут вызвать повторное создание, потому что мое приложение не может вращаться (все действия в портрете).
Я видел много статей, блогов и StackOverflow вопрос/ответы по этой теме, например, http://android-er.blogspot.co.il/2013/04/simulate-kill-activity-to-test.html, How to simulate Android killing my process, How to simulate killing activity to conserve memory?.
И как сказано в ответах stackoverflow, Why not use always android:configChanges="keyboardHidden|orientation"? Есть еще много событий, которые могут вызвать повторное создание активности, поэтому после того, как я прочитал его, я захотел проверить свое приложение на некоторые из этих событий.
Например, я нажал кнопку «Домой» в своей деятельности, а затем включил параметры и попытался изменить язык, изменить размер шрифта и т. Д., Но не те действия, которые сделали мое приложение заново созданным, поскольку я ожидал бы. Когда я вернулся в свое приложение, он просто возобновился, а onCreate() никогда не звонил. Так что я даже проверить официальные документы по этому поводу - http://developer.android.com/guide/topics/manifest/activity-element.html#config, и они также говорят, что это должно привести к моей деятельности, чтобы воссоздавать: Цитирование:
"When a configuration change occurs at runtime, the activity is shut down and restarted by default"
но, как я сказал, что это не случилось со мной.
Это я огромно для меня, потому что я был очень наивным и думал, что если мое приложение будет только в портретном или, если я добавлю в манифесте следующую строку:
android:configChanges="keyboardHidden|orientation|screenSize"
тогда каждая вещь будет хорошо и, очевидно, это не потому, что есть еще много изменений в конфигурации, которые могут перезапустить мою деятельность, поэтому я больше не могу работать с ней, и я хочу хорошо ее обработать, и теперь я хочу ее протестировать.
Как вы утверждаете, что ваша деятельность имеет или не вызвала CreateCreate? Отлаживать? LogCat? –
Logcat - когда я нажимаю на домашнюю кнопку, вызывается onPause() -> onStop(). После моего теста (независимо от того, какой из них, например, меняет размер шрифта от обычного до огромного), я долго нажимаю кнопку «домой», а затем нажимаю на свое приложение, а затем onRestart() -> onStart() -> onResume() называются – Elizabeth