Android P (api 28) Atividade monitorar o ciclo de vida: escutas globais e locais ouvinte


Monitor global

Antes de api 28, usando android.app.Application.ActivityLifecycleCallbacks ouvindo ciclo de vida Atividade. Começa api 14 (Android 4.0). Como pode ser visto a partir de seu nome de pacote, é a interface do monitor no nível do aplicativo. Aplicação exigido pelo registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback) 、 unregisterActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback)registro e anti-registro.
Porque é global, assim que escrever algum código que a situação geral é mais apropriado.


ouvintes locais

Use as jetpack componentes da arquitetura Lifecycles

configuração

  1. androidx.appcompat configuração
    utilizando androidx biblioteca, ou a compatibilidade uso Fragmento AppCompatActivity sob androidx pacotes, que pode ser interno, através getLifecycle(), foi obtidoandroidx.lifecycle.Lifecycle

androidx ainda muito novo, e uma variedade de suporte a bibliotecas de código aberto não é suficiente. Com ele, pode haver todos os tipos de problemas de problemas.

  1. suporte de appcompat configuração
    não fazer androidx, ou o uso de com.android.support:appcompat-v7:28.0.0tal configuração a.
    Da mesma forma, por Fragmento apoio-v7 ou inferior em AppCompatActivity compatibilidade apoio-v4, estão dentro deles, chamada getLifecycle(), isto é obtido android.arch.lifecycle.Lifecycle
    , por conseguinte, necessita de mais introduzidoandroid.arch.lifecycle:extensions:1.1.1

uso

Como acima, a aquisição Lifecycle, pode ser adicionado o observador: addObserver(LifecycleObserver observer)remoção do observador quando apropriado removeObserver(LifecycleObserver observer)
porque LifecycleObserveruma interface vazio, não existe nenhum método de sumário, isto requer a implementação costume, suplementado com android.arch.lifecycle.OnLifecycleEventmétodos abstract anotados. Tais 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();
}

Assim, a lógica pode lidar com seu ciclo de vida no respectivo processo.

Nota:

  1. Acima, usando o padrão observador. Uma pluralidade de espectadores podem ser adicionados exemplo LifecycleObserver.
  2. modo de audição local, pode ser executado em um dispositivo versão de baixo; configuração só requer o compilador versão 28, o apoio-v7 versão 28

Publicado 400 artigos originais · Louvor obteve 364 · Visualizações 1,62 milhões +

Acho que você gosta

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