Activity.OnSaveInstanceState Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
OnSaveInstanceState(Bundle) |
Chamado para recuperar o estado por instância de uma atividade antes de ser eliminado para que o estado possa ser restaurado em |
OnSaveInstanceState(Bundle, PersistableBundle) |
Isso é o mesmo que |
OnSaveInstanceState(Bundle)
Chamado para recuperar o estado por instância de uma atividade antes de ser eliminado para que o estado possa ser restaurado em #onCreate
ou #onRestoreInstanceState
(o preenchido Bundle
por esse método será passado para ambos).
[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
Parâmetros
- outState
- Bundle
Pacote no qual colocar seu estado salvo.
- Atributos
Comentários
Chamado para recuperar o estado por instância de uma atividade antes de ser eliminado para que o estado possa ser restaurado em #onCreate
ou #onRestoreInstanceState
(o preenchido Bundle
por esse método será passado para ambos).
Esse método é chamado antes que uma atividade possa ser encerrada para que, quando voltar em algum momento no futuro, possa restaurar seu estado. Por exemplo, se a atividade B for iniciada na frente da atividade A e, em algum momento, a atividade A for eliminada para recuperar recursos, a atividade A terá a chance de salvar o estado atual de sua interface do usuário por meio desse método para que, quando o usuário retornar à atividade A, o estado da interface do usuário possa ser restaurado por meio #onCreate
de ou #onRestoreInstanceState
.
Não confunda esse método com retornos de chamada do ciclo de vida da atividade, como #onPause
, que sempre é chamado quando o usuário não interage mais ativamente com uma atividade ou #onStop
que é chamado quando a atividade se torna invisível. Um exemplo de quando #onPause
e #onStop
é chamado e não esse método é quando um usuário navega de volta da atividade B para a atividade A: não há necessidade de chamar #onSaveInstanceState
B porque essa instância específica nunca será restaurada, portanto, o sistema evita chamá-la. Um exemplo quando #onPause
é chamado e não #onSaveInstanceState
é quando a atividade B é iniciada na frente da atividade A: o sistema pode evitar chamar #onSaveInstanceState
a atividade A se ela não for encerrada durante o tempo de vida de B, pois o estado da interface do usuário de A permanecerá intacto.
A implementação padrão cuida da maior parte do estado da interface do usuário por instância para você, chamando android.view.View#onSaveInstanceState()
cada exibição na hierarquia que tem uma id e salvando a id da exibição focada no momento (toda a qual é restaurada pela implementação padrão de #onRestoreInstanceState
). Se você substituir esse método para salvar informações adicionais não capturadas por cada exibição individual, provavelmente desejará chamar a implementação padrão, caso contrário, esteja preparado para salvar todo o estado de cada exibição por conta própria.
Se chamado, esse método ocorrerá depois #onStop
para aplicativos direcionados a plataformas que começam com android.os.Build.VERSION_CODES#P
. Para aplicativos direcionados a versões anteriores da plataforma, esse método ocorrerá antes #onStop
e não há garantias sobre se ele ocorrerá antes ou depois #onPause
.
Documentação Java para android.app.Activity.onSaveInstanceState(android.os.Bundle)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Confira também
Aplica-se a
OnSaveInstanceState(Bundle, PersistableBundle)
Isso é o mesmo que #onSaveInstanceState
mas é chamado para atividades criadas com o atributo android.R.attr#persistableMode
definido como 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
Parâmetros
- outState
- Bundle
Pacote no qual colocar seu estado salvo.
- outPersistentState
- PersistableBundle
Estado que será salvo nas reinicializações.
- Atributos
Comentários
Isso é o mesmo que #onSaveInstanceState
mas é chamado para atividades criadas com o atributo android.R.attr#persistableMode
definido como persistAcrossReboots
. O android.os.PersistableBundle
transmitido será salvo e apresentado na #onCreate(Bundle, PersistableBundle)
primeira vez que essa atividade for reiniciada após a próxima reinicialização do dispositivo.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.
Confira também
- OnSaveInstanceState(Bundle)
- OnCreate(Bundle)
- <xref:Android.App.Activity.OnRestoreInstanceState(Android.OS.Bundle%2c+Android.OS.PersistableBundle)>
- OnPause()