Alguém pode me dar um exemplo que use onResume()
no Android?
Além disso, se eu quiser reiniciar a atividade no final da execução de outra, qual método é executado - onCreate()
ou onResume()
?
E se eu quiser atualizar os dados, como faço para colocá-los onResume()?
Respostas:
Qualquer Activity que é reiniciada tem seu método onResume () executado primeiro.
Para usar este método, faça o seguinte:
@Override public void onResume(){ super.onResume(); // put your code here... }
fonte
Reiniciar o aplicativo irá chamar
OnCreate()
.Continuar o aplicativo quando ele estiver pausado irá chamar
OnResume()
. Dos documentos oficiais em https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle, aqui está um diagrama do ciclo de vida da atividade.fonte
A melhor maneira de entender seria ter todos os métodos LifeCycle sobrescritos em sua atividade e colocar um breakpoint (se estiver fazendo check-in no emulador) ou um Log em cada um deles. Você saberá qual será chamado e quando.
Assim como um spoiler,
onCreate()
é chamado primeiro, então se você pausou a atividade indo para a tela inicial ou iniciando outra atividade,onPause()
é chamado. Se o sistema operacional destruir a atividade nesse meio tempo,onDestroy()
será chamado. Se você retomar o aplicativo e ele já tiver sido destruído,onCreate()
será chamado ou entãoonResume()
será chamado.Edit: Eu esqueci
onStop()
, ele é chamado antesonDestroy()
.Faça o exercício que mencionei e entenderá melhor.
fonte
A maioria das respostas anteriores explica como, por que e quando usar,
onResume()
mas gostaria de acrescentar algo sobre como recriar o seuActivity
.A resposta é
onCreate()
No entanto, ao decidir recriá-lo de fato, você deve se perguntar quanto dasActivity
necessidades deve ser recriado. Se forem dados em um adaptador, digamos para uma lista, você pode chamarnotifyDataChanged()
oadapter
para preencher novamente oadapter
e não ter que redesenhar tudo.Além disso, se você só precisa atualizar alguns,
views
mas não todos, pode ser mais eficiente ligarinvalidate()
para osview
que precisam ser atualizados. Isso apenas os redesenharáviews
e, possivelmente, permitirá que seu aplicativo seja executado com mais facilidade. Espero que isso possa ajudá-lo.fonte
onResume()
é um dos métodos chamados em todo o ciclo de vida da atividade .onResume()
é a contrapartida àonPause()
qual é chamada sempre que uma atividade é ocultada da vista, por exemplo, se você iniciar uma nova atividade que a oculta.onResume()
é chamado quando a atividade que estava oculta volta a ser vista na tela.Sua pergunta pergunta sobre qual método é usado para reiniciar uma atividade.
onCreate()
é chamado quando a atividade é criada pela primeira vez. Na prática, a maioria das atividades persiste em segundo plano por meio de uma série de chamadasonPause()
eonResume()
. Uma atividade só é realmente "reiniciada"onRestart()
se primeiro for totalmente interrompida por uma chamadaonStop()
e, então, trazida de volta à vida. Portanto, se você não estiver realmente interrompendo as atividades comonStop()
ele, é mais provável que o useonResume()
.Leia o documento do Android no link acima para entender melhor a relação entre os diferentes métodos de estilo de vida. Independentemente de qual método de ciclo de vida você acaba usando, o formato geral é o mesmo. Você deve substituir o método padrão e incluir seu código, ou seja, o que você deseja que a atividade faça naquele ponto, na seção comentada.
@Override public void onResume(){ //will be executed onResume }
fonte
Reveja a referência do Android Activity Lifecycle. Há uma bela imagem e a tabela mostrando quais métodos são chamados. link de referência google
https://developer.android.com/reference/android/app/Activity.html
fonte
KOTLIN
Qualquer Activity que é reiniciada tem seu método onResume () executado primeiro.
Para usar este método, faça o seguinte:
override fun onResume() { super.onResume() // your code here }
fonte
Após o início de uma atividade, reiniciado (onRestart () acontece antes de onStart ()), ou pausado (onPause ()), onResume () chamado. Quando a atividade está no estado de onResume (), a atividade está pronta para ser usada pelo usuário do aplicativo.
Estudei um pouco o ciclo de vida da atividade e aqui está meu entendimento sobre este tópico: Se você quiser reiniciar a atividade (A) no final da execução de outra, pode haver alguns casos diferentes.
A outra atividade (B) foi pausada e / ou interrompida ou destruída, e a atividade A possivelmente foi pausada (onPause ()), neste caso, a atividade A chamará onResume ()
A atividade B foi pausada e / ou interrompida ou destruída, a atividade A possivelmente foi interrompida (onStop ()) devido a algo de memória, neste caso, a atividade A irá chamar onRestart () primeiro, onStart () em segundo, então onResume ()
A atividade B foi pausada e / ou interrompida ou destruída, a atividade A foi destruída, o programador pode chamar onStart () manualmente para iniciar a atividade primeiro, então onResume () porque quando uma atividade está no status destruída, a atividade foi não iniciado, e isso acontece antes de a atividade ser completamente removida. Se a atividade for removida, a atividade precisa ser criada novamente. Chamando onStart () manualmente acho que é porque se a atividade não for iniciada e for criada, onStart () será chamado depois de onCreate ().
Se você quiser atualizar os dados, faça uma função de atualização de dados e coloque a função dentro do onResume (). Ou coloque uma função loadData dentro de onResume ()
É melhor entender o ciclo de vida com a ajuda do diagrama de ciclo de vida da atividade.
fonte