Compartir a través de


Activity.OnRetainNonConfigurationInstance Método

Definición

Llamado por el sistema, como parte de la destrucción de una actividad debido a un cambio de configuración, cuando se sabe que se creará inmediatamente una nueva instancia para la nueva configuración.

[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

Devoluciones

cualquier objeto que contenga el estado deseado para propagarse a la siguiente instancia de actividad

Atributos

Comentarios

Llamado por el sistema, como parte de la destrucción de una actividad debido a un cambio de configuración, cuando se sabe que se creará inmediatamente una nueva instancia para la nueva configuración. Puede devolver cualquier objeto que desee aquí, incluida la propia instancia de actividad, que se puede recuperar más adelante llamando #getLastNonConfigurationInstance() a en la nueva instancia de actividad.

<em>Si el destino android.os.Build.VERSION_CODES#HONEYCOMB es o posterior, considere la posibilidad de usar en su lugar un Fragment con Fragment#setRetainInstance(boolean) Fragment.setRetainInstance(boolean.</em>

Esta función se llama exclusivamente como una optimización y no debe confiar en que se llame a ella. Cuando se llama a , se realizarán varias garantías para ayudar a optimizar el cambio de configuración: <ul><li> La función se llamará entre #onStop y #onDestroy. <li> Una nueva instancia de la actividad se>creará <siempre</em> inmediatamente después de llamar a esta#onDestroy(). En concreto, <los mensajes em>no</em> se enviarán durante este tiempo (cuando el objeto devuelto no tiene una actividad a la que se va a asociar). <li> El objeto que devuelve aquí estará <>disponible siempre</em> desde el #getLastNonConfigurationInstance() método de la siguiente instancia de actividad, tal como se describe allí. </ul>

Estas garantías están diseñadas para que una actividad pueda usar esta API para propagar un estado extenso de la instancia de actividad antigua a nueva, desde mapas de bits cargados hasta conexiones de red, para ejecutar subprocesos de forma uniforme. Tenga en cuenta que no debe <><> propagar ningún dato que pueda cambiar en función de la configuración, incluidos los datos cargados desde recursos como cadenas, diseños o dibujables.

La garantía de ningún control de mensajes durante el cambio a la siguiente actividad simplifica el uso con objetos activos. Por ejemplo, si el estado retenido es un android.os.AsyncTask que se garantiza que sus funciones de devolución de llamada (como android.os.AsyncTask#onPostExecute) no se llamarán desde la llamada aquí hasta que ejecute la instancia siguiente.#onCreate(Bundle) (Sin embargo, tenga en cuenta que, por supuesto, no existe ninguna garantía de este tipo, android.os.AsyncTask#doInBackground ya que se ejecuta en un subproceso independiente).

<strong>Note:</strong> Para la mayoría de los casos, debe usar la Fragment API Fragment#setRetainInstance(boolean) en su lugar; esto también está disponible en plataformas anteriores a través de las bibliotecas de compatibilidad de Android.

Documentación de Java para android.app.Activity.onRetainNonConfigurationInstance().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a