Android: cuando usar onStart (), onStop ()?

He leído varios posts que describen la diferencia entre onStart() y onResume() : onStart() se llama cuando la actividad se hace visible, onResume() se llama cuando la actividad está lista para la interacción del usuario. multa.

Siempre he añadido código a onPause() y onResume() , y nunca me he molestado con onStart() y onStop() .

¿Puede alguien dar algunos ejemplos concretos de lo que podría hacer en onStart() , vs. onResume() ? Lo mismo vale para onStop() y onPause() , ¿cómo es onStop() útil? Debo de faltar algo fundamental aquí.

onStop() (por ejemplo) se llamará cuando deje la actividad para alguna otra actividad (editar: casi ver comentarios de commonswares acerca de las actividades temáticas de diálogo). Por ejemplo, si utiliza startActivity() en la actividad A para iniciar la actividad B. Cuando vuelve a pulsar en la actividad B, volverá a la actividad A y se onStart .

Esto difiere de algunas de las razones onPause podría ser llamado sin onStop ser llamado. Si, por ejemplo, la pantalla se agota o se pulsa el botón onPause se llamará, pero probablemente no onStop (dependiendo de la memoria disponible y lo que sea), por lo que es una "pausa más clara". OnStop probablemente se llamará eventualmente incluso en este caso, pero no inmediatamente.

Ok, pero cuál es el uso

A menudo no hay un uso específico, pero puede haber. Puesto que sus actividades mantendrán su estado de memoria en la pila incluso después de iniciar otra actividad, esa pila aumentará con el número de actividades iniciadas (altura de la pila). Esto puede llevar a un uso de memoria grande en algunas aplicaciones. Después de un tiempo, el marco entrará en acción y eliminará algunas actividades de la pila, pero esto es bastante brusco y probablemente significará que muchos estados se mantendrán al regresar.

Por lo tanto, un ejemplo de uso para onStart/onStop es si desea liberar algún estado al dejar una actividad para otra y volver a onStart/onStop cuando regrese. Lo he utilizado para establecer listadapters a null, cachés de imágenes vacías y similares (en aplicaciones muy específicas). Si desea liberar la memoria utilizada por las vistas visibles en un listadapter puede volver a crearlo en onstart y dejar que las vistas sean recogidas por el gc. Esto aumentará la probabilidad de que el resto del estado de la memoria de la actividad viva.

Algunos recursos se pueden considerar lo suficientemente buenos para guardar mientras la instancia de actividad está activa y algunos sólo cuando está en la parte frontal de la pila. Depende de usted decidir lo que es mejor en su aplicación y la granularidad de crear / iniciar / curriculum vitae le da eso.

OnStart () funciona después de onCreate () finalizó su tarea. Es un buen lugar para poner un broadcastReceiver o inicializar algún estado sobre la interfaz de usuario que debe mostrar constantemente siempre que el usuario vuelve a esta actividad.

OnResume () funciona cuando regresa a su Intención u Actividad pulsando el botón Atrás. Así que onPause se llamará cada vez que una actividad diferente viene a primer plano.

Creo que su pregunta es bastante explicada aquí en el doc: leer sobre el ciclo de vida de la actividad

  • OnCreate () vs OnStart ()
  • Ejecutar código en el estado onPause () o onStop () de la actividad
  • Evitar que el diálogo se abra varias veces al reanudar la actividad
  • ¿Cuánto manejo del ciclo de vida de Android es demasiado?
  • ¿Cómo detectar los cambios de orientación pero dejar que el android los maneje?
  • Actividad con servicio duradero en el fondo que no se matará
  • En libgdx en Android, ¿cómo puedo guardar el estado del juego en caso de que se muera la aplicación?
  • Ciclo de vida de BroadcastReceiver
  • ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
  • Android: onPostResume se llama después de que se reanude el fragmento
  • Diferencia principal entre el Manifiesto y el Registro Programático de BroadcastReceiver
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.