Android P (API 28) Controlar la actividad del ciclo de vida: escuchas globales y locales oyente


Monitor mundial

Antes de API 28, usando android.app.Application.ActivityLifecycleCallbacks escucha ciclo de vida de actividad. Se inicia api 14 (Android 4.0). Como puede verse en el nombre del paquete, es la interfaz del monitor de nivel de aplicación. Aplicación requerido por el registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback) 、 unregisterActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback)registro y anti-registro.
Debido a que es global, por lo que escribir un código que la situación general es más apropiado.


oyentes locales

Utilice los jetpack componentes de la arquitectura de ciclos de vida

configuración

  1. androidx.appcompat configuración
    usando androidx biblioteca, o a la compatibilidad uso Fragmento AppCompatActivity bajo androidx paquetes, que pueden ser internos, a través de getLifecycle(), se obtuvoandroidx.lifecycle.Lifecycle

androidx todavía demasiado nuevo, y una variedad de soporte de la biblioteca de código abierto no es suficiente. Con él, puede haber todo tipo de problemas de problemas.

  1. apoyo-appcompat configuración
    no lo hacen androidx, o el uso de com.android.support:appcompat-v7:28.0.0dicha configuración a.
    Del mismo modo, por Fragmento apoyo-v7 o inferior en AppCompatActivity compatibilidad apoyo-v4, están dentro de ellos, llamada getLifecycle(), se obtiene android.arch.lifecycle.Lifecycle
    por lo tanto necesita introducido ademásandroid.arch.lifecycle:extensions:1.1.1

uso

Como el anterior, la adquisición Lifecycle, el observador puede añadir: addObserver(LifecycleObserver observer)eliminar el observador cuando sea apropiado removeObserver(LifecycleObserver observer)
, porque LifecycleObserveruna interfaz vacía, no hay métodos abstractos, se requiere implementación personalizada, complementado con android.arch.lifecycle.OnLifecycleEventmétodos abstractos anotados. Tales como:

import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleObserver;
import android.arch.lifecycle.OnLifecycleEvent;

/**
 * desc     :
 * author   : stone
 * email    : [email protected]
 * time     : 2019/3/6 12 17
 */
public interface LifecycleCallback extends LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    void onCreate();

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    void onStart();

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume();

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    void onPause();

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    void onStop();

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    void onDestroy();

    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    void onAny();
}

Por lo tanto, la lógica puede manejar su ciclo vital en el proceso respectivo.

nota:

  1. Anteriormente, utilizando el patrón de observador. Una pluralidad de espectadores se puede añadir ejemplo LifecycleObserver.
  2. modo de escucha local, se puede ejecutar en un dispositivo versión baja; configuración sólo requiere la versión del compilador 28, el soporte-v7 versión 28

Publicados 400 artículos originales · ganado elogios 364 · Vistas 1,62 millones +

Supongo que te gusta

Origin blog.csdn.net/jjwwmlp456/article/details/89750174
Recomendado
Clasificación