¿Alguien puede darme un ejemplo que use onResume()
en Android?
Además, si quiero reiniciar la actividad al final de la ejecución de otro, ¿qué método se ejecuta, onCreate()
o onResume()
?
Y si quiero actualizar los datos, ¿cómo los pongo en onResume()?
Respuestas:
Cualquier actividad que se reinicia tiene su método onResume () ejecutado primero.
Para usar este método, haga esto:
@Override public void onResume(){ super.onResume(); // put your code here... }
fuente
Reiniciar la aplicación llamará
OnCreate()
.Continuar con la aplicación cuando está en pausa llamará
OnResume()
. De los documentos oficiales en https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle, aquí hay un diagrama del ciclo de vida de la actividad.fuente
La mejor manera de entenderlo sería anular todos los métodos de LifeCycle en su actividad y colocar un punto de interrupción (si se registra en el emulador) o un registro en cada uno de ellos. Sabrá a cuál se le llama y cuándo.
Al igual que un spoiler,
onCreate()
se llama primero, luego, si pausaste la actividad yendo a la pantalla de inicio o iniciando otra actividad,onPause()
se llama. Si el sistema operativo destruye la actividad mientras tanto,onDestroy()
se llama. Si reanuda la aplicación y la aplicación ya se destruyó,onCreate()
se llamará o, de lo contrarioonResume()
, se llamará.Editar: me olvidé
onStop()
, se llama antesonDestroy()
.Haga el ejercicio que mencioné y comprenderá mejor.
fuente
La mayoría de las respuestas anteriores hacen un buen trabajo al explicar cómo, por qué y cuándo usar,
onResume()
pero me gustaría agregar algo sobre la recreación de su archivoActivity
.La respuesta es
onCreate()
Sin embargo, cuando decida recrearlo, debe preguntarse cuántas de lasActivity
necesidades se deben recrear. Si se trata de datos en un adaptador, digamos por una lista, a continuación, puede llamarnotifyDataChanged()
a laadapter
repoblar eladapter
y no tener que volver a dibujar todo.Además, si solo necesita actualizar algunos
views
pero no todos, entonces puede ser más eficiente llamarinvalidate()
a losview
que necesitan actualizarse. Esto solo volverá a dibujarlosviews
y posiblemente permitirá que su aplicación se ejecute sin problemas. Espero que esto pueda ayudarte.fuente
onResume()
es uno de los métodos llamados a lo largo del ciclo de vida de la actividad .onResume()
es la contraparte a laonPause()
que se llama cada vez que una actividad se oculta a la vista, por ejemplo, si inicia una nueva actividad que la oculta.onResume()
se llama cuando la actividad que estaba oculta vuelve a verse en la pantalla.Su pregunta sobre qué método se utiliza para reiniciar una actividad.
onCreate()
se llama cuando se crea la actividad por primera vez. En la práctica, la mayoría de las actividades persisten en segundo plano a través de una serie de llamadasonPause()
yonResume()
. Una actividad solo se "reinicia" realmenteonRestart()
si primero se detiene por completo llamandoonStop()
y luego se vuelve a activar. Por lo tanto, si realmente no detiene las actividades cononStop()
él, lo más probable es que lo esté utilizandoonResume()
.Lea el documento de Android en el enlace anterior para comprender mejor la relación entre los diferentes métodos de estilo de vida. Independientemente del método de ciclo de vida que termine utilizando, el formato general es el mismo. Debe anular el método estándar e incluir su código, es decir, lo que desea que haga la actividad en ese momento, en la sección comentada.
@Override public void onResume(){ //will be executed onResume }
fuente
Vuelva a revisar la referencia del ciclo de vida de la actividad de Android. Hay una bonita imagen y la tabla que muestra los métodos que se llaman. enlace de referencia google
https://developer.android.com/reference/android/app/Activity.html
fuente
KOTLIN
Cualquier actividad que se reinicia tiene su método onResume () ejecutado primero.
Para usar este método, haga esto:
override fun onResume() { super.onResume() // your code here }
fuente
Una vez iniciada una actividad, se reinicia (onRestart () antes de onStart ()), o se pausa (onPause ()), se llama a onResume (). Cuando la actividad está en el estado de onResume (), la actividad está lista para que la utilice el usuario de la aplicación.
He estudiado un poco el ciclo de vida de la actividad, y aquí está mi comprensión de este tema: si desea reiniciar la actividad (A) al final de la ejecución de otra, podría haber algunos casos diferentes.
La otra actividad (B) ha sido pausada y / o detenida o destruida, y la actividad A posiblemente se haya detenido (onPause ()), en este caso, la actividad A llamará a onResume ()
La actividad B ha sido pausada y / o detenida o destruida, la actividad A posiblemente se haya detenido (onStop ()) debido a algo de memoria, en este caso, la actividad A llamará a onRestart () primero, a onStart () en segundo lugar, luego a onResume ()
La actividad B ha sido pausada y / o detenida o destruida, la actividad A ha sido destruida, el programador puede llamar a onStart () manualmente para iniciar la actividad primero, luego a onResume () porque cuando una actividad está en estado destruido, la actividad ha no se inició, y esto sucede antes de que la actividad se elimine por completo. Si se quita la actividad, la actividad debe crearse nuevamente. Llamar manualmente a onStart () Creo que es porque si la actividad no se inicia y se crea, se llamará a onStart () después de onCreate ().
Si desea actualizar datos, cree una función de actualización de datos y coloque la función dentro de onResume (). O coloque una función loadData dentro de onResume ()
Es mejor comprender el ciclo de vida con la ayuda del diagrama de ciclo de vida de la actividad.
fuente