我有一个活动,其中包含从异步HTTP请求接收的对象的视图。我正在使用EventBus向对象发布事件,并在活动中发布以下方法:
public void onEventMainThread(MyObjectEvent event) {
EventBus.getDefault().unregister(this);
showMyObject(event.getMyObject());
}
以前,我已在onCreate()方法中注册了活动的实例:
EventBus.getDefault().register(this);
我知道Android中的Activity生命周期,我认为我使用EventBus的方式不对,因为我正在注册一个可能被Android破坏的实例。我并不热衷于注册具有此类行为的实例。
我可以使用每个onEvent()方法注册一个Application实例或一个对象,但我会编写一个God对象。
通过验证getStickyEvent(MyObjectEvent)为null然后注册活动,是否可以使用粘性事件?如果不是null,我会注册活动。
我想知道在Android中使用带有视图的EventBus的最佳方法是什么。 在此先感谢;)
答案 0 :(得分:6)
如果您注册onCreate,请考虑在onDestroy中取消注册。
另外,请查看registerSticky,它会立即发送一个事件。