Когда действительно используется saveInstanceState? - PullRequest
4 голосов
/ 29 августа 2011

Я новичок в Android, и у меня возникли некоторые проблемы с saveInstanceState и управлением жизненным циклом.

http://developer.android.com/guide/topics/fundamentals/activities.html#Lifecycle Я прочитал статью о жизненном цикле, но на самом деле не знаюКОГДА процесс будет убит, и мой хороший saveInstanceSate будет использоваться!Я могу нажать «HOME», но он только запускает «onPause», затем «onResume», я думаю.

Если я иду в Меню-> Настройки-> Приложение-> Управление приложением-> Имя моего приложения-> ПринудительноСтоп, это все еще рассматривается как работающее приложение, но когда я перезапускаю его, я возвращаюсь к «первому действию».Так что это похоже на закрытие приложения, это не «Уничтожение процесса», как хотелось бы, если я хорошо понимаю.

Итак, вот мои вопросы:

1) Как я могу быть уверенмой процесс был убит (поэтому мое приложение будет использовать saveIntanceState при перезапуске)?

2) Как заставить принудительно завершить процесс, чтобы проверить, правильно ли запрограммирован мой saveInstanceState?

3) Когда после того, как приложение было «убито», оно перезапускается и вызывается «onCreate» (с сохраненным в это время значениемInInanceanceState! = Null), могу ли я получить доступ к дополнительной информации Intent, которую я дал, когда вызывал Activity, илиинформация о намерениях была удалена, когда процесс был убит?Иными словами, я должен включить в свой saveInstanceState копию того, что было сохранено в Intent Extra?

Надеюсь, я достаточно ясен;)

1 Ответ

1 голос
/ 29 августа 2011

1) Все, о чем вам нужно беспокоиться, это переопределить вашу активность onSaveInstanceState().Android будет вызывать это до того, как убьет ваш процесс.

2) Вам необходимо настроить тестовый проект Android .Затем создайте тест, который расширяет ActivityInstrumentationTestCase2, и вы можете получить объект Instrumentation, вызвав `getInstrumentation ().Оттуда вы можете вызвать Instrumentation.callActivityOnCreate и передать объект Bundle для использования в тестировании.

3) Я почти уверен, что вам придется хранить дополнительные функции в пакете сохраненных экземпляров.

...