Activity.OnSaveInstanceState Метод

Определение

Перегрузки

OnSaveInstanceState(Bundle)

Вызывается для получения состояния каждого экземпляра из действия, прежде чем быть убитым, чтобы состояние можно было восстановить в #onCreate или #onRestoreInstanceState ( Bundle заполненное этим методом будет передано обоим).

OnSaveInstanceState(Bundle, PersistableBundle)

Это то же самое, что #onSaveInstanceState и для действий, созданных с заданным атрибутом android.R.attr#persistableModepersistAcrossReboots.

OnSaveInstanceState(Bundle)

Вызывается для получения состояния каждого экземпляра из действия, прежде чем быть убитым, чтобы состояние можно было восстановить в #onCreate или #onRestoreInstanceState ( Bundle заполненное этим методом будет передано обоим).

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")]
protected virtual void OnSaveInstanceState (Android.OS.Bundle outState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle -> unit

Параметры

outState
Bundle

Пакет, в котором нужно разместить сохраненное состояние.

Атрибуты

Комментарии

Вызывается для получения состояния каждого экземпляра из действия, прежде чем быть убитым, чтобы состояние можно было восстановить в #onCreate или #onRestoreInstanceState ( Bundle заполненное этим методом будет передано обоим).

Этот метод вызывается до того, как действие может быть убито, чтобы при возврате некоторого времени в будущем он может восстановить свое состояние. Например, если действие B запускается перед действием A, а в какой-то момент действие А будет убито для освобождения ресурсов, действие А может сохранить текущее состояние пользовательского интерфейса с помощью этого метода, чтобы при возвращении пользователя в действие A состояние пользовательского интерфейса можно восстановить с помощью #onCreate или #onRestoreInstanceState.

Не путайте этот метод с обратными вызовами жизненного цикла действия, такими как #onPause, которые всегда вызываются, когда пользователь больше не активно взаимодействует с действием или #onStop вызывается, когда действие становится невидимым. Один из примеров, когда #onPause и вызывается, а #onStop не этот метод заключается в том, что пользователь переходит обратно из действия B в действие A: не требуется вызывать #onSaveInstanceState на B, так как этот конкретный экземпляр никогда не будет восстановлен, поэтому система избегает ее вызова. Например, когда вызывается и не #onSaveInstanceState происходит, когда #onPause действие B запускается перед действием A: система может избежать вызова #onSaveInstanceState действия A, если оно не убито в течение времени существования B, так как состояние пользовательского интерфейса A останется неизменным.

Реализация по умолчанию заботится о большинстве состояний пользовательского интерфейса для каждого экземпляра, вызывая android.view.View#onSaveInstanceState() каждое представление в иерархии с идентификатором и сохраняя идентификатор текущего ориентированного представления (все из которых восстанавливается реализацией #onRestoreInstanceStateпо умолчанию). Если вы переопределите этот метод, чтобы сохранить дополнительную информацию, не захваченную каждым отдельным представлением, скорее всего, потребуется вызвать реализацию по умолчанию, в противном случае будет готово сохранить все состояние каждого представления самостоятельно.

Если этот метод вызывается, этот метод будет происходить после #onStop того, как приложения предназначены для платформ, начиная с android.os.Build.VERSION_CODES#P. Для приложений, предназначенных для более ранних версий платформы, этот метод будет выполняться раньше #onStop , и нет никаких гарантий о том, будет ли оно происходить до или после #onPause.

Документация по Java для android.app.Activity.onSaveInstanceState(android.os.Bundle).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

См. также раздел

Применяется к

OnSaveInstanceState(Bundle, PersistableBundle)

Это то же самое, что #onSaveInstanceState и для действий, созданных с заданным атрибутом android.R.attr#persistableModepersistAcrossReboots.

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")]
public virtual void OnSaveInstanceState (Android.OS.Bundle outState, Android.OS.PersistableBundle outPersistentState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit

Параметры

outState
Bundle

Пакет, в котором нужно разместить сохраненное состояние.

outPersistentState
PersistableBundle

Состояние, которое будет сохранено во время перезагрузки.

Атрибуты

Комментарии

Это то же самое, что #onSaveInstanceState и для действий, созданных с заданным атрибутом android.R.attr#persistableModepersistAcrossReboots. Переданный android.os.PersistableBundle файл будет сохранен и представлен в #onCreate(Bundle, PersistableBundle) первый раз, когда это действие будет перезапущено после следующей перезагрузки устройства.

Документация по Java для android.app.Activity.onSaveInstanceState(android.os.Bundle, android.os.PersistableBundle).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

См. также раздел

Применяется к