El significado y la función de cada método en el ciclo de vida.
ciclo de vida común
onCreate:
create表示创建,这是
Activity生命周期的第一个方法,也是我们在
android开发中接触的最多的生命周期方法。它本身的作用是进行
Activity的一些初始化工作,比如使用
setContentView加载布局,对一些控件和变量进行初始化等。但也有很多人将很多与初始化无关的代码放在这,其实这是不规范的。 此时
Activity`sigue en segundo plano y no es visible. Entonces, la animación no debería inicializarse aquí, porque no se puede ver...onStart
:start
Indica inicio, que esActivity
el segundo método del ciclo de vida.Activity
Ya es visible en este momento , pero aún no ha aparecido en primer plano, todavía no podemos verlo y no podemosActivity
interactuar con él. De hecho,Activity
no es un problema poner el trabajo de inicialización aquí, esonCreate
por la recomendación oficial y nuestros hábitos de desarrollo.onResume
:resume
Significa continuar y comenzar de nuevo, el nombre y sus responsabilidades también son las mismas. En este momento,Activity
después de la inicialización de las dos primeras etapas, está listo para funcionar.Activity
Ya en primer plano y visible en esta etapa. Esta etapa puede abrir el dispositivo exclusivo.onPause
:pause
Indica pausa, este método se ejecutará alActivity
saltar a otro o al salir normalmente de la aplicación.Activity
LuegoonStop方法
se llamará, y podemos hacer un trabajo ligero de almacenamiento de datos y desinicialización, que no debería llevar demasiado tiempo, porque al saltar, solo cuando se ejecuta un método, el otro se iniciará.Si no se ejecuta dentro de los 500 ms o 0,5 segundos , seActivity
verá obligado a cerrar . ** Del diagrama del ciclo de vida, se encuentra que se puede reiniciar rápidamente aquí, pero esta situación es realmente muy rara, por ejemplo, el usuario vuelve rápidamente presionando el botón en el camino al siguiente .Activity
onPause
Activity
android
onPause
Activity
Activity
back
onStop
:stop
Indica detenerse,Activity
ya no es visible en este momento, peroActivity
el objeto aún está en la memoria y no ha sido destruido. El trabajo principal en esta etapa es también hacer algún trabajo de recuperación de recursos.onDestroy
:destroy
Indica destrucción. Esta etapaActivity
es destruida e invisible. Podemos liberar recursos que no han sido liberados y realizar algún trabajo de reciclaje.onRestart
:restart
Indica reinicio,Activity
se puede ver en este momentoHome
que este método se activará cuando el usuario presione el botón para cambiar al escritorio y luego retroceder oActivity
retroceder del anterior al anterior .Activity
Generalmente no hay nada que hacer aquí.
ciclo de vida poco comun
Ciclo de vida completo de Android:onCreate –> onContentChanged –> onStart –> onPostCreate –> onResume –> onPostResume –> onPause –> onStop –> onDestroy
onContentChanged
onContentChanged()
Es Activity
un método de devolución de llamada en Cuando Activity
cambia el diseño, es decir, setContentView()
cuando addContentView()
se ejecuta el método, se llamará al método. Por ejemplo, varios métodos Activity
en el método se pueden colocar en este método.View
findViewById()
onPostCreate
yonPostResume
onPostCreate
El método se refiere a onCreate
la devolución de llamada después de que el método se ejecuta por completo y el sistema realiza la operación de inicialización final. onPostResume
De manera similar, la declaración oficial de estos dos métodos es que, por lo general, no se reescribirán. El método conocido ahora es solo cuando el usuario ActionBarDrawerToggle
necesita onPostCreate
esperar el estado de sincronización cuando se gira la pantalla.Algunos ejemplos proporcionados por Google son los siguientes:
@Overrideprotected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();}
diferencia del ciclo de vida
La diferencia entre onCreate y onStart
- La diferencia entre visible e invisible. El primero es invisible y el segundo es visible.
- La diferencia en el número de ejecuciones.
onCreate
El método solo seActivity
ejecuta una vez cuando se crea, yonStart
el método se llama varias veces en el procesoActivity
de cambiar yHome
presionar el botón para volver al escritorio y luego volver a la aplicación. Por lo tanto, es más adecuadoBundle
restaurar los datos enonStart
la base de datos que en la base de datos .onCreate
onCreate
Lo que se puede haceronStart
en realidad se puede hacer, peroonstart
lo que se puede haceronCreate
puede no ser adecuado para hacerlo.
Diferencia entre el método onStart y el método onResume
- Ya sea en primer plano.
onStart
El métodoActivity
es visible pero no en primer plano, no interactivo, sino enonResume
primer plano. - Las responsabilidades son diferentes,
onStart
los métodos realizan principalmente el trabajo de inicialización yonResume
los métodos, de acuerdo con las recomendaciones oficiales, pueden realizar operaciones como iniciar animaciones y monopolizar dispositivos.
La diferencia entre el método onPause y el método onStop
- es visible.
onPause
A vecesActivity
visible,onStop
a vecesActivity
invisible, peroActivity
el objeto aún está en la memoria. - Es posible que el método no se ejecute cuando la memoria del sistema es insuficiente
onStop
, por lo que es mejor guardar el estado del programa, cerrar el dispositivo exclusivo y la animación, y guardar algunos datosonPause
, pero tenga cuidado de no tomar demasiado tiempo.
La diferencia entre el método onStop y el método onDestroy
onStop
El escenario Activity
no se ha destruido y el objeto aún está en la memoria. En este momento, puede volver Activity
a este escenario nuevamente Activity
, y onDestroy
el escenario Acivity
se destruye.
¿Por qué el orden de ejecución de cada método cuando se cambia la actividad es (A) onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop en lugar de (A)onPause→(A)onStop→(B)onCreate→(B)onStart→(B)onResume
- Uno
Activity
ocupará más o menos los recursos del sistema y, en la propuesta oficial,onPause
el método liberará una gran cantidad de recursos del sistema paraActivity
proporcionar una garantía de cambio sin problemas, sin esperar dos etapas más, lo que hace que el cambio sea más rápido. - De acuerdo con la representación del diagrama del ciclo de vida, si el usuario
Activity
vuelve a cambiar al original durante el proceso de cambioActivity
, el método seonPause
llama directamente después del método , que es mucho más rápido.onResume
onPause→onStop→onRestart→onStart→onResume
onSaveInstanceState和onRestoreInstanceState
Ambos tiempos de ejecución
Cuando targetSdkVersion
es menor que 3, onSaveInstanceState
se 在onPause
llama en el método, y cuando es mayor que 3, se onStop
llama en el método. onRestoreInstanceState
En cambio, se llama onStart
después y antes de **onResume
Llamada onSaveInstanceState
- Después de
Activity
ser anulado o relegado a un segundo plano, los recursos insuficientes del sistema lo matan, se llamará a este método; - Este método se llamará cuando el usuario cambie la orientación de la pantalla;
- Este método se llamará cuando el actual
Activity
salte a otroActivity
o presione el botón Inicio para volver a la pantalla principal y retroceder al fondo. En el primer caso, no podemos garantizar cuándo sucederá y el sistema lo programa de acuerdo con la escasez de recursos; en el segundo caso, cuando la pantalla se voltea, el sistema primero destruye la actual y luego reconstruye una nueva. Al llamar a este método, podemos guardar algunos datos temporales; en el tercer caso, el sistema llama a este método para guardar el estado de cada componente de la ventanaActivity
actualView
.
onSaveInstanceState
在onStop
Se llama a la secuencia de llamada .
onRestoreInstanceState llamada
- Después de
Activity
ser anulado o relegado a un segundo plano, la falta de recursos del sistema lo mata y el usuario vuelve a élActivity
, este método se llama; - Este método se llama durante el proceso de reconstrucción cuando el usuario cambia la orientación de la pantalla. Podemos anular este método para que se puedan restaurar algunos datos temporales.
onRestoreInstanceState
El orden de llamada es onStart
posterior;
La mayoría de los desarrolladores tienen un sentido de superación personal, pero no encuentran un método adecuado en el proceso de aprendizaje, carecen de orientación profesional y tienden a desistir a la mitad, al final ganan poco e incluso comienzan a dudar de sí mismos, es difícil aprender algo en poco tiempo. Entonces, como desarrollador de Android, ¿cómo debo planificar mi propia ruta de aprendizaje y avanzar a niveles intermedios y avanzados?
Aquí me gustaría compartir con ustedes un conjunto de "Información avanzada sobre ocho módulos de Android" escrito por arquitectos senior de Ali, para ayudarlo a organizar el conocimiento desordenado, disperso y fragmentado de manera sistemática, para que pueda dominar de manera sistemática y eficiente los diversos puntos de conocimiento del desarrollo de Android.
Debido al gran contenido del artículo y al espacio limitado, la información se ha organizado en documentos PDF. Si necesita el documento completo de "Información avanzada de los ocho módulos de Android", puede agregar WeChat para obtenerlo de forma gratuita.
PD: (Al final del artículo, ¡también hay un pequeño beneficio de usar el robot ChatGPT! ¡No te lo pierdas)
"Notas avanzadas de los ocho módulos de Android"
En comparación con el contenido fragmentado que solemos leer, los puntos de conocimiento de esta nota son más sistemáticos, más fáciles de entender y recordar, y están organizados estrictamente de acuerdo con el sistema de conocimiento.
Un conjunto completo de materiales de video:
1. Colección de entrevistas
2. Colección de análisis de código fuente
3. Colección de marcos de código abierto
Al mismo tiempo, se construyó aquí un robot de chat grupal de WeChat basado en chatGPT para responder preguntas técnicas difíciles para todos las 24 horas del día .