@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
}
如果我们把很多这种需要跟生命周期相关的逻辑代码都直接放在 Activity 的生命周期方法中,Activity 将会变得难以维护。通过 Lifecycle,我们就能避免这种问题。因为本质上我们需要的只是 Activity 或者 Fragment 的生命周期发生改变的时候能通知到我们,以便我们在对应生命周期中执行对应的方法。
Lifecycle 的基本使用
2.0、 导入 Lifecycle 依赖
Lifecycle 被包含在 support library 26.1.0 及之后的依赖包中,如果我们的项目依赖的支持库版本在 26.1.0及以上,那么不需要额外导入 Lifecycle 库,本篇例子中使用的支持库是 28.0.0 :
implementation ‘com.android.support:appcompat-v7:28.0.0’
如果支持库版本小于 26.1.0 ,就需要单独导入 Lifecycle 库 :
implementation “android.arch.lifecycle:runtime:1.1.1”
当然,如果项目已经迁移到了 AndroidX,可以使用下面的方式引入 :
implementation “androidx.lifecycle:lifecycle-runtime:2.0.0”
还是建议大家尝试尽快把项目迁移为AndroidX,因为很多更新,会最先在 AndroidX 中发布,逐渐摆脱传统的support包。比如这里要讲的 Lifecycle 在 AndroidX 中已经升级到了 2.x 版本,而支持库中还是 1.x 版本。
鉴于支持库一般都在 26.1.0 以上,并且尚有大部分用户未迁移到AndroidX&