LAZYLIFECYCLE Callbacks es un marco simple para diferir sus tareas no esenciales, e inicializaciones fuera de la ruta de lanzamiento de la pantalla mientras se mantiene las mismas garantías de ejecución de las devoluciones de llamada del ciclo de vida de Android.
Primer sorteo: cuando se lanza la aplicación, Play Store rastrea los números de lanzamiento frío, cálido y caliente. Y lo hace mediante la forma en que su aplicación puede dibujar su primer cuadro. La aplicación puede comenzar a través del lanzador, notificaciones, enlaces profundos, etc., y cada una podría aterrizar al usuario en diferentes pantallas. Se considera que la aplicación ha presentado su primera pantalla cuando el marcador "mostrado" se muestra en el logCat. Siempre se muestra después de todas las devoluciones de llamada ascendentes como OnCreate, OnStart y Onresume han regresado.
Entonces, cualquier código que se esté ejecutando en OnCreate, OnStart y Onresume, y otras devoluciones de llamada al alza (sin mencionar cosas como Onpostresume) tienen potencial para hacer que el tiempo de lanzamiento de la pantalla sea malo. Por lo tanto, es aconsejable eliminar el código diferido lejos de las devoluciones de llamada del ciclo de vida de Android.
Pero, ¿a dónde debemos moverlo? Podemos hacer las cosas a pedido, pero no todo se puede mover en el dato. Por ejemplo, desea comenzar a hacer las llamadas N/W para obtener las imágenes lo antes posible. Aquí, no queremos que comience mientras ocurre la representación de la pantalla, pero el momento en que la pantalla se presenta con la vista del marcador de posición, debemos iniciar las llamadas N/W-DB. Supongamos que desea cargar un borrador de un correo electrónico del DB, primero nos gustaría representar la pantalla de composición y luego comenzar a obtener el borrador.
El orden de estas devoluciones de llamada se mantiene según Android. En una actividad, OnlayAyCreate () será seguido por On LazyStart (), seguido de OnlazyResume (). En fragmentos, OnlayAyCreate () será seguido por OnviewCreateDlazy (View), seguido de OnlazyStart () seguido de OnlazyResume (). Una cosa a la mente es que todas las devoluciones de llamada perezosas ocurren después de que se satisfacen los desencadenantes del gerente del ciclo de vida perezoso. No entrelazan con las devoluciones de llamada del ciclo de vida de Android.
Agregue el código a continuación a las dependencias de archivo build.gradle dependencies { implementation 'com.github.microsoft:LazylifecycleCallbacks:v1.0' }
LazyLifecycleCallbacks en la actividad (preferible una BaseActivity ) y proporcione las implementaciones predeterminadas del método.onCreate() .lifecycleManager.activate() en onResume ,lifecycleManager.deactivate() en onPause()supportsLazyLifecycleCallbacks() a true .BaseActivity ahora pueden anular las devoluciones de llamada del ciclo de vida perezoso y usarlo.Vea el código a continuación:
abstract class BaseActivity : AppCompatActivity (), LazyLifecycleCallbacks {
protected lateinit var lazyLifecycleManager : LazyLifecycleManager
override fun onCreate ( savedInstanceState : Bundle ? ) {
super .onCreate(savedInstanceState)
lazyLifecycleManager = ViewBasedLazyLifecycleManager ( this )
}
override fun onResume () {
super .onResume()
lazyLifecycleManager.activate()
}
override fun onPause () {
super .onPause()
lazyLifecycleManager.deactivate()
}
override fun onLazyCreate () {}
override fun onLazyStart () {}
override fun onLazyResume () {}
override fun supportsLazyLifecycleCallbacks (): Boolean = false
}