Condividi tramite


Activity.OnSaveInstanceState Metodo

Definizione

Overload

OnSaveInstanceState(Bundle)

Chiamato per recuperare lo stato per istanza da un'attività prima di essere terminata in modo che lo stato possa essere ripristinato in #onCreate o #onRestoreInstanceState (il Bundle popolato da questo metodo verrà passato a entrambi).

OnSaveInstanceState(Bundle, PersistableBundle)

È uguale #onSaveInstanceState a ma viene chiamato per le attività create con l'attributo android.R.attr#persistableMode impostato su persistAcrossReboots.

OnSaveInstanceState(Bundle)

Chiamato per recuperare lo stato per istanza da un'attività prima di essere terminata in modo che lo stato possa essere ripristinato in #onCreate o #onRestoreInstanceState (il Bundle popolato da questo metodo verrà passato a entrambi).

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")]
protected virtual void OnSaveInstanceState (Android.OS.Bundle outState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle -> unit

Parametri

outState
Bundle

Bundle in cui posizionare lo stato salvato.

Attributi

Commenti

Chiamato per recuperare lo stato per istanza da un'attività prima di essere terminata in modo che lo stato possa essere ripristinato in #onCreate o #onRestoreInstanceState (il Bundle popolato da questo metodo verrà passato a entrambi).

Questo metodo viene chiamato prima che un'attività venga terminata in modo che, quando torna indietro in futuro, possa ripristinarne lo stato. Ad esempio, se l'attività B viene avviata davanti all'attività A e a un certo punto l'attività A viene terminata per recuperare le risorse, l'attività A avrà la possibilità di salvare lo stato corrente dell'interfaccia utente tramite questo metodo in modo che quando l'utente torna all'attività A, lo stato dell'interfaccia utente può essere ripristinato tramite #onCreate o #onRestoreInstanceState.

Non confondere questo metodo con i callback del ciclo di vita dell'attività, #onPausead esempio , che viene sempre chiamato quando l'utente non interagisce più attivamente con un'attività o #onStop che viene chiamata quando l'attività diventa invisibile. Un esempio di quando #onPause e #onStop viene chiamato e non questo metodo è quando un utente torna dall'attività B all'attività A: non è necessario chiamare #onSaveInstanceState su B perché tale particolare istanza non verrà mai ripristinata, quindi il sistema evita di chiamarlo. Un esempio quando viene chiamato e non #onSaveInstanceState è quando #onPause l'attività B viene avviata davanti all'attività A: il sistema può evitare di chiamare #onSaveInstanceState sull'attività A se non viene ucciso durante la durata di B perché lo stato dell'interfaccia utente di A rimarrà intatto.

L'implementazione predefinita si occupa della maggior parte dello stato dell'interfaccia utente per ogni istanza chiamando android.view.View#onSaveInstanceState() in ogni visualizzazione della gerarchia con un ID e salvando l'ID della visualizzazione attualmente incentrata (tutte ripristinate dall'implementazione predefinita di #onRestoreInstanceState). Se si esegue l'override di questo metodo per salvare informazioni aggiuntive non acquisite da ogni singola visualizzazione, è probabile che si voglia chiamare all'implementazione predefinita, altrimenti si è pronti a salvare tutto lo stato di ogni visualizzazione manualmente.

Se viene chiamato, questo metodo verrà eseguito dopo #onStop per le applicazioni destinate alle piattaforme a partire da android.os.Build.VERSION_CODES#P. Per le applicazioni destinate alle versioni precedenti della piattaforma, questo metodo si verificherà prima #onStop e non vi sono garanzie su se si verificherà prima o dopo #onPause.

Documentazione java per android.app.Activity.onSaveInstanceState(android.os.Bundle).

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.

Vedi anche

Si applica a

OnSaveInstanceState(Bundle, PersistableBundle)

È uguale #onSaveInstanceState a ma viene chiamato per le attività create con l'attributo android.R.attr#persistableMode impostato su persistAcrossReboots.

[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")]
public virtual void OnSaveInstanceState (Android.OS.Bundle outState, Android.OS.PersistableBundle outPersistentState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit

Parametri

outState
Bundle

Bundle in cui posizionare lo stato salvato.

outPersistentState
PersistableBundle

Stato che verrà salvato tra riavvii.

Attributi

Commenti

È uguale #onSaveInstanceState a ma viene chiamato per le attività create con l'attributo android.R.attr#persistableMode impostato su persistAcrossReboots. L'oggetto android.os.PersistableBundle passato verrà salvato e presentato per #onCreate(Bundle, PersistableBundle) la prima volta che questa attività viene riavviata dopo il successivo riavvio del dispositivo.

Documentazione java per android.app.Activity.onSaveInstanceState(android.os.Bundle, android.os.PersistableBundle).

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.

Vedi anche

Si applica a