android-discuss
android-discuss copied to clipboard
Eventbus可以实现自动注销吗
使用Eventbus过程中,如果忘记unregister,可能会导致内心泄露。有办法实现自动注销吗
在base的生命周期方法中unregister,用try catch包裹,简单粗暴
比楼上稍微好一点的做法是base里有一个方法register,让base去做只要register了就unregister的事
我的做法是在 BaseActivity 里面进行处理,在对应的生命周期进行注册或解绑;
public abstract class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 注册
EventBus.getDefault().register(this);
}
@Override
protected void onPause() {
super.onPause();
// 解绑
if (isFinishing()) {
EventBus.getDefault().unregister(this);
}
}
}
希望可以帮到你