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 quiera aquí, incluida la propia instancia de actividad, que se puede recuperar más adelante llamando a getLastNonConfigurationInstance() en la nueva instancia de actividad. Si tiene como destino Build.VERSION_CODES. HONEYCOMB o posterior, considere la posibilidad de usar un fragmento con Fragment.setRetainInstance(boolean. 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: se llamará a la función entre onStop() y onDestroy(). Una nueva instancia de la actividad siempre se creará inmediatamente después de llamar a onDestroy(). En concreto, no se enviará ningún mensaje durante este tiempo (cuando el objeto devuelto no tiene una actividad a la que se va a asociar). El objeto que devuelve aquí siempre estará disponible en el método getLastNonConfigurationInstance() de la siguiente instancia de actividad, tal como se describe allí. 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 AsyncTask, se garantiza que sus funciones de devolución de llamada (como AsyncTask.onPostExecute(Result)) no se llamarán desde la llamada aquí hasta que ejecute el onCreate(Bundle) de la instancia siguiente. (Tenga en cuenta que, por supuesto, no hay ninguna garantía de este tipo para AsyncTask.doInBackground(Params) ya que se ejecuta en un subproceso independiente). Nota: En la mayoría de los casos, debe usar 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.

Referencia de Android para android.app.Activity.onRetainNonConfigurationInstance.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a