Notas de descifrado avanzado de Android: complemento

imagen

El significado y la función de cada método en el ciclo de vida.

ciclo de vida común

  1. 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...
  2. onStart: startIndica inicio, que es Activityel segundo método del ciclo de vida. ActivityYa es visible en este momento , pero aún no ha aparecido en primer plano, todavía no podemos verlo y no podemos Activityinteractuar con él. De hecho, Activityno es un problema poner el trabajo de inicialización aquí, es onCreatepor la recomendación oficial y nuestros hábitos de desarrollo.
  3. onResume: resumeSignifica continuar y comenzar de nuevo, el nombre y sus responsabilidades también son las mismas. En este momento, Activitydespués de la inicialización de las dos primeras etapas, está listo para funcionar. ActivityYa en primer plano y visible en esta etapa. Esta etapa puede abrir el dispositivo exclusivo.
  4. onPause: pauseIndica pausa, este método se ejecutará al Activitysaltar a otro o al salir normalmente de la aplicación. ActivityLuego onStop方法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 , se Activityverá 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 .ActivityonPauseActivityandroidonPauseActivityActivityback
  5. onStop: stopIndica detenerse, Activityya no es visible en este momento, pero Activityel 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.
  6. onDestroy: destroyIndica destrucción. Esta etapa Activityes destruida e invisible. Podemos liberar recursos que no han sido liberados y realizar algún trabajo de reciclaje.
  7. onRestart: restartIndica reinicio, Activityse puede ver en este momento Homeque este método se activará cuando el usuario presione el botón para cambiar al escritorio y luego retroceder o Activityretroceder del anterior al anterior . ActivityGeneralmente 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

  1. onContentChanged

onContentChanged()Es Activityun método de devolución de llamada en Cuando Activitycambia el diseño, es decir, setContentView()cuando addContentView()se ejecuta el método, se llamará al método. Por ejemplo, varios métodos Activityen el método se pueden colocar en este método.ViewfindViewById()

  1. onPostCreateyonPostResume

onPostCreateEl método se refiere a onCreatela 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. onPostResumeDe 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 ActionBarDrawerTogglenecesita onPostCreateesperar 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

  1. La diferencia entre visible e invisible. El primero es invisible y el segundo es visible.
  2. La diferencia en el número de ejecuciones. onCreateEl método solo se Activityejecuta una vez cuando se crea, y onStartel método se llama varias veces en el proceso Activityde cambiar y Homepresionar el botón para volver al escritorio y luego volver a la aplicación. Por lo tanto, es más adecuado Bundlerestaurar los datos en onStartla base de datos que en la base de datos .onCreate
  3. onCreateLo que se puede hacer onStarten realidad se puede hacer, pero onstartlo que se puede hacer onCreatepuede no ser adecuado para hacerlo.

Diferencia entre el método onStart y el método onResume

  1. Ya sea en primer plano. onStartEl método Activityes visible pero no en primer plano, no interactivo, sino en onResumeprimer plano.
  2. Las responsabilidades son diferentes, onStartlos métodos realizan principalmente el trabajo de inicialización y onResumelos 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

  1. es visible. onPauseA veces Activityvisible, onStopa veces Activityinvisible, pero Activityel objeto aún está en la memoria.
  2. 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 datos onPause, pero tenga cuidado de no tomar demasiado tiempo.

La diferencia entre el método onStop y el método onDestroy

onStopEl escenario Activityno se ha destruido y el objeto aún está en la memoria. En este momento, puede volver Activitya este escenario nuevamente Activity, y onDestroyel escenario Acivityse 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

  1. Uno Activityocupará más o menos los recursos del sistema y, en la propuesta oficial, onPauseel método liberará una gran cantidad de recursos del sistema para Activityproporcionar una garantía de cambio sin problemas, sin esperar dos etapas más, lo que hace que el cambio sea más rápido.
  2. De acuerdo con la representación del diagrama del ciclo de vida, si el usuario Activityvuelve a cambiar al original durante el proceso de cambio Activity, el método se onPausellama directamente después del método , que es mucho más rápido.onResumeonPause→onStop→onRestart→onStart→onResume

onSaveInstanceState和onRestoreInstanceState

Ambos tiempos de ejecución

Cuando targetSdkVersiones menor que 3, onSaveInstanceStatese 在onPausellama en el método, y cuando es mayor que 3, se onStopllama en el método. onRestoreInstanceStateEn cambio, se llama onStartdespués y antes de **onResume

Llamada onSaveInstanceState

  1. Después de Activityser anulado o relegado a un segundo plano, los recursos insuficientes del sistema lo matan, se llamará a este método;
  2. Este método se llamará cuando el usuario cambie la orientación de la pantalla;
  3. Este método se llamará cuando el actual Activitysalte a otro Activityo 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 ventana Activityactual View.

onSaveInstanceState在onStopSe llama a la secuencia de llamada .

onRestoreInstanceState llamada

  1. Después de Activityser anulado o relegado a un segundo plano, la falta de recursos del sistema lo mata y el usuario vuelve a él Activity, este método se llama;
  2. 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.

onRestoreInstanceStateEl orden de llamada es onStartposterior;

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"

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

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
inserte la descripción de la imagen aquí

2. Colección de análisis de código fuente

inserte la descripción de la imagen aquí

3. Colección de marcos de código abierto

inserte la descripción de la imagen aquí
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 .

imagen

Supongo que te gusta

Origin blog.csdn.net/Gaga246/article/details/131548744
Recomendado
Clasificación