Condividi tramite


Activity.OnRetainNonConfigurationInstance Metodo

Definizione

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 FragmentFragment#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#onPostExecuteesempio ) 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 FragmentFragment#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.

Si applica a