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 以降を対象としている場合は、代わりに Fragment#setRetainInstance(boolean) Fragment.setRetainInstance(boolean.< でFragmentを使用することを検討してください/em>
この関数は純粋に最適化として呼び出され、呼び出されることに依存してはなりません。 呼び出されると、構成の切り替えを最適化するために、 <ul><li>#onStop と #onDestroy の間で関数が呼び出されます。
<li> アクティビティの新しいインスタンス <em>always</em> この #onDestroy() が呼び出された直後に作成されます。 特に、 <em>no</em> メッセージはこの期間中にディスパッチされます (返されたオブジェクトに関連付けるアクティビティがない場合)。
<li> ここで返すオブジェクトは <em>always</em> 次のアクティビティ インスタンスの #getLastNonConfigurationInstance() メソッドから使用できます。
</ul>
これらの保証は、アクティビティがこの API を使用して、読み込まれたビットマップからネットワーク接続に、古いアクティビティ インスタンスから新しいアクティビティ インスタンスに広範な状態を伝達し、スレッドを均等にアクティブに実行できるように設計されています。 文字列>レイアウト<描画可能なリソースから読み込まれたデータを含め、構成に基づいて変更される可能性のあるデータを伝達><しない/em にする必要があることに注意してください。
次のアクティビティへの切り替え中にメッセージ処理が行われる保証は、アクティブ オブジェクトでの使用を簡略化します。 たとえば、保持状態がandroid.os.AsyncTaskの場合、次のインスタンスの#onCreate(Bundle)を実行するまで、そのコールバック関数 (android.os.AsyncTask#onPostExecute など) が呼び出されないことが保証されます。 (ただし、 android.os.AsyncTask#doInBackground は別のスレッドで実行されているため、このような保証は当然ありません)。
<strong>Note:</strong> ほとんどの場合、代わりに Fragment API Fragment#setRetainInstance(boolean) を使用する必要があります。これは、Android サポート ライブラリを介して古いプラットフォームでも使用できます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。