Activity.OnRetainNonConfigurationInstance Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Chiamato dal sistema, come parte dell'eliminazione di un'attività a causa di una modifica della configurazione, quando è noto che una nuova istanza verrà creata immediatamente per la nuova configurazione.
[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
Restituisce
qualsiasi oggetto che contiene lo stato desiderato da propagare all'istanza dell'attività successiva
- Attributi
Commenti
Chiamato dal sistema, come parte dell'eliminazione di un'attività a causa di una modifica della configurazione, quando è noto che una nuova istanza verrà creata immediatamente per la nuova configurazione. È possibile restituire qualsiasi oggetto desiderato, inclusa l'istanza dell'attività stessa, che può essere recuperata in un secondo momento chiamando #getLastNonConfigurationInstance()
nella nuova istanza dell'attività.
<em>Se si ha come destinazione android.os.Build.VERSION_CODES#HONEYCOMB
o versione successiva, prendere in considerazione l'uso di con Fragment
Fragment#setRetainInstance(boolean) Fragment.setRetainInstance(boolean
.</Em>
Questa funzione viene chiamata esclusivamente come ottimizzazione e non è necessario basarsi su di essa chiamata. Quando viene chiamato, verrà effettuata una serie di garanzie per ottimizzare il cambio di configurazione: <ul<>li> La funzione verrà chiamata tra #onStop
e #onDestroy
. <li> Una nuova istanza dell'attività verrà <>creata sempre</em> immediatamente dopo la chiamata di #onDestroy()
questo. In particolare, <i>messaggi em no</em> verranno inviati durante questo periodo di tempo (quando l'oggetto restituito non ha un'attività da associare). <li> L'oggetto restituito qui sarà <sempre</em>> disponibile dal #getLastNonConfigurationInstance()
metodo dell'istanza di attività seguente, come descritto in questa posizione. </ul>
Queste garanzie sono progettate in modo che un'attività possa usare questa API per propagare lo stato esteso dal vecchio alla nuova istanza di attività, dalle bitmap caricate, alle connessioni di rete, per eseguire attivamente i thread. Si noti che è consigliabile <>non< propagare> i dati che possono cambiare in base alla configurazione, inclusi i dati caricati da risorse come stringhe, layout o drawable.
La garanzia di nessuna gestione dei messaggi durante il passaggio all'attività successiva semplifica l'uso con oggetti attivi. Ad esempio, se lo stato mantenuto è android.os.AsyncTask
garantito che le relative funzioni di callback (ad android.os.AsyncTask#onPostExecute
esempio ) non verranno chiamate dalla chiamata qui fino a quando non si esegue l'istanza successiva.#onCreate(Bundle)
Si noti tuttavia che non esiste ovviamente alcuna garanzia per android.os.AsyncTask#doInBackground
poiché è in esecuzione in un thread separato.
<nota>forte:</strong> Per la maggior parte dei casi è consigliabile usare l'API Fragment
Fragment#setRetainInstance(boolean)
. Questa operazione è disponibile anche nelle piattaforme meno recenti tramite le librerie di supporto Android.
Documentazione java per android.app.Activity.onRetainNonConfigurationInstance()
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.