Android Architecture Components(AAC)3 lifecycle生命周期管理者

lifecycle相对于以前的room要相对简单许多这里我们简单介绍下
1.gradle配置

    annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
    implementation "android.arch.lifecycle:extensions:1.1.1"

2.定义一个观察者接收传递过来生命周期回调这里我们定义一个类为MyPresenter

public class MyPresenter implements LifecycleObserver {
    private Context context;

    public MyPresenter(Context context) {
        this.context = context;
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    public void showToast() {
        Toast.makeText(context, "HELLOW WORLD", Toast.LENGTH_LONG).show();
    }
}

@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)代表系统调用onResume的时候会调用这个方法

3.最后是调用过程

public class MainActivity extends AppCompatActivity {
    MyPresenter presenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        presenter = new MyPresenter(this);
        getLifecycle().addObserver(presenter);
    }
}

重要方法 getLifecycle().addObserver(presenter);将观察者注册到系统的生命周期被观察者中去。

还有重要的一点我们全局查找类的时候发现了MyPresenter_LifecycleAdapter这个类,即这也是一个编译注解框架因此不必考虑使用注解带来的效率问题。


版权声明:本文为u011048906原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。