¿Cuál es la forma correcta de anular el registro de las devoluciones de llamada del ciclo de vida de la actividad?
En la clase Aplicación de Android, puede registrar / anular el registro de ActivityLifecycleCallbacks , que le permiten supervisar los eventos del ciclo de vida de la actividad en su aplicación en un solo lugar (si así lo desea).
¿Dónde está el lugar adecuado para llamar a unregisterActivityLifecycleCallbacks ? Estoy registrando en onCreate , y estaba pensando que onTerminate sería el lugar adecuado sólo con el nombre del método, pero los documentos dicen para onTerminate () :
- ¿Cómo tratar los datos retenidos después de que la actividad llegue a primer plano cuando se utiliza más de una actividad?
- ¿Qué acciones realiza la tecla de retroceso / retroceso en el disparador de Android?
- ¿Hacer que un objeto escuche los eventos del ciclo de vida de la actividad?
- Cómo terminar la actividad destruida
- IllegalArgumentException con Otto Event bus en la instancia Fragment
Este método se utiliza en entornos de procesos emulados. Nunca se llamará a un dispositivo Android de producción, donde los procesos se eliminan simplemente matándolos; No se ejecuta ningún código de usuario (incluida esta devolución de llamada) al hacerlo.
No veo ningún otro método en la clase de aplicación en la que se realiza una devolución de llamada de tipo 'apagado'. ¿Necesita cancelar su registro?
- onDestroy () se llama cuando estoy tratando de llamar a startActivityForResult ()
- Android - onStop () se llamará con un retardo
- Ciclo de vida de la actividad de Android después de presionar el botón Atrás
- La animación al inicio de la actividad omite los marcos
- Ciclo de vida de la actividad - onCreate invitó a cada reorientación
- OnBackPressed - evite destruir la actividad
- Activity and Fragment Lifecycle, ¿el fuego onResume dispara uno tras otro?
- Al cerrar la sesión, desactive la pila del historial de actividades, evitando que el botón "volver" abra las actividades activadas
Simon tenía razón al respecto. registerActivityLifecycleCallbacks
no requiere una llamada que coincida con unregisterActivityLifecycleCallbacks
. Como se describe en esta pregunta de SO no se puede detectar cuando se está matando la aplicación. Así que no hay un lugar "lógico" para anular el registro de su devolución de llamada. E incluso si lo hubiera, su instancia de Application
se eliminará después de que se realice la última acción de Activity
y la matanza de su Application
mActivityLifecycleCallbacks
lista mActivityLifecycleCallbacks
que contiene la referencia a su devolución de llamada de todos modos.
TL – No se preocupe por llamar a unregisterActivityLifecycleCallbacks
, solo estará disponible si desea detener el seguimiento de las acciones de la Activity
durante el ciclo de vida normal de su Application
.