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这个类,即这也是一个编译注解框架因此不必考虑使用注解带来的效率问题。