Activity.OnSaveInstanceState メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
OnSaveInstanceState(Bundle) |
|
OnSaveInstanceState(Bundle, PersistableBundle) |
これは |
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 がリソースを回収するために強制終了された場合、アクティビティ A は、このメソッドを使用してそのユーザー インターフェイスの現在の状態を保存し、ユーザーがアクティビティ A に戻ったときに、ユーザー インターフェイスの状態を #onCreate
または #onRestoreInstanceState
で復元できるようにします。
このメソッドを、ユーザーがアクティブにアクティビティと対話しなくなったときに常に呼び出される #onPause
などのアクティビティ ライフサイクル コールバックや、アクティビティが非表示になったときに呼び出される #onStop
と混同しないでください。 このメソッドではなく、 #onPause
と #onStop
が呼び出される例の 1 つは、ユーザーがアクティビティ B からアクティビティ A に戻ったときです。その特定のインスタンスは復元されないため、B で #onSaveInstanceState
を呼び出す必要がないため、システムは呼び出しを回避します。 #onPause
が呼び出され、#onSaveInstanceState
されていない場合の例は、アクティビティ B がアクティビティ A の前で起動されたときです。A のユーザー インターフェイスの状態はそのままであるため、アクティビティ A の有効期間中に強制終了されなかった場合、システムはアクティビティ A で#onSaveInstanceState
を呼び出さなくなります。
既定の実装では、ID を持つ階層内の各ビューで android.view.View#onSaveInstanceState()
を呼び出し、現在フォーカスされているビューの ID を保存することで 、インスタンスごとの UI の状態のほとんどを処理します (これらはすべて、 #onRestoreInstanceState
の既定の実装によって復元されます)。 このメソッドをオーバーライドして、個々のビューによってキャプチャされない追加情報を保存する場合は、既定の実装を呼び出す必要があります。それ以外の場合は、各ビューのすべての状態を自分で保存できるように準備する必要があります。
呼び出された場合、このメソッドは、android.os.Build.VERSION_CODES#P
以降のプラットフォームを対象とするアプリケーションの#onStop
後に発生します。 以前のバージョンのプラットフォームを対象とするアプリケーションの場合、このメソッドは #onStop
前に行われ、 #onPause
の前と後のどちらで行われるかについての保証はありません。
android.app.Activity.onSaveInstanceState(android.os.Bundle)
の Java ドキュメント。
このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。
こちらもご覧ください
適用対象
OnSaveInstanceState(Bundle, PersistableBundle)
これは#onSaveInstanceState
と同じですが、属性android.R.attr#persistableMode
persistAcrossReboots
に設定して作成されたアクティビティに対して呼び出されます。
[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#persistableMode
persistAcrossReboots
に設定して作成されたアクティビティに対して呼び出されます。 渡された android.os.PersistableBundle
は、次のデバイスの再起動後にこのアクティビティが初めて再起動 #onCreate(Bundle, PersistableBundle)
に保存され、表示されます。
このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。
こちらもご覧ください
- OnSaveInstanceState(Bundle)
- OnCreate(Bundle)
- <xref:Android.App.Activity.OnRestoreInstanceState(Android.OS.Bundle%2c+Android.OS.PersistableBundle)>
- OnPause()