次の方法で共有


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 がリソースを回収するために強制終了された場合、アクティビティ 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#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) に保存され、表示されます。

android.app.Activity.onSaveInstanceState(android.os.Bundle, android.os.PersistableBundle)の Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

こちらもご覧ください

適用対象