Activity.OnRetainNonConfigurationInstance メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
構成の変更によるアクティビティの破棄の一環として、新しい構成に対して新しいインスタンスがすぐに作成されることがわかっている場合に、システムによって呼び出されます。
[Android.Runtime.Register("onRetainNonConfigurationInstance", "()Ljava/lang/Object;", "GetOnRetainNonConfigurationInstanceHandler")]
public virtual Java.Lang.Object? OnRetainNonConfigurationInstance ();
[<Android.Runtime.Register("onRetainNonConfigurationInstance", "()Ljava/lang/Object;", "GetOnRetainNonConfigurationInstanceHandler")>]
abstract member OnRetainNonConfigurationInstance : unit -> Java.Lang.Object
override this.OnRetainNonConfigurationInstance : unit -> Java.Lang.Object
戻り値
次のアクティビティ インスタンスに伝達する目的の状態を保持している任意のオブジェクト
- 属性
注釈
構成の変更によるアクティビティの破棄の一環として、新しい構成に対して新しいインスタンスがすぐに作成されることがわかっている場合に、システムによって呼び出されます。 ここでは、アクティビティ インスタンス自体を含め、任意のオブジェクトを返すことができます。これは後で新しいアクティビティ インスタンスを呼び出 #getLastNonConfigurationInstance()
すことによって取得できます。
<em>ターゲットまたはそれ以降のandroid.os.Build.VERSION_CODES#HONEYCOMB
場合は、代わりに with Fragment#setRetainInstance(boolean) Fragment.setRetainInstance(boolean
をFragment
使用することを検討してください。</全角>
この関数は純粋に最適化として呼び出され、呼び出されることに依存してはなりません。 呼び出されると、構成の切り替えの最適化に役立つさまざまな保証が行われます。<ul<>li> 関数は次の間#onStop
で#onDestroy
呼び出されます。 <li> アクティビティの新しいインスタンスは、<>この#onDestroy()
インスタンスが呼び出された直後に作成<>されます。 特に、<>em no</em> メッセージはこの期間中にディスパッチされます (返されたオブジェクトに関連付けるアクティビティがない場合)。 <li> ここで返すオブジェクトは、<>ここで説明されているように、次のアクティビティ インスタンスのメソッドから#getLastNonConfigurationInstance()
常<に/em> を使用できます。 </ul>
これらの保証は、アクティビティがこの API を使用して、読み込まれたビットマップからネットワーク接続まで、古いアクティビティ インスタンスから新しいアクティビティ インスタンスに広範な状態を伝達し、スレッドを均等にアクティブに実行できるように設計されています。 <>文字列、レイアウト、ドローアブルなどのリソースから読み込まれたデータを含め、構成に基づいて変更される可能性のあるデータを伝達しないでください<>。
次のアクティビティへの切り替え中にメッセージ処理が行われる保証は、アクティブ オブジェクトでの使用を簡略化します。 たとえば、保持状態があるandroid.os.AsyncTask
場合は、次のインスタンス#onCreate(Bundle)
を実行するまで、そのコールバック関数 (などandroid.os.AsyncTask#onPostExecute
) が呼び出されないことが保証されます。 (ただし、別のスレッドで実行されているため、 android.os.AsyncTask#doInBackground
そのような保証はありません。
<strong>Note:</strong> ほとんどの場合、代わりに API Fragment#setRetainInstance(boolean)
をFragment
使用する必要があります。これは、Android サポート ライブラリを通じて古いプラットフォームでも使用できます。
の Java ドキュメントandroid.app.Activity.onRetainNonConfigurationInstance()
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。