2015-02-10 75 views

回答

1

Otto没有检查对象是否已注册的方法。这就是为什么最佳实践说你应该更好地使用你提到的生命周期方法之一。

如果您在这些方法之外注册,则可以定义一个boolean字段并将其设置为true(如果您已经注册了一个对象)。如果此字段为true,则不需要再次注册。当您完成此对象时,请不要忘记取消注册(例如,在Activity.onDestroy()中,您可以发布注销所有此类实例的消息)。

您还可以查看TinyBus库,它扩展了Otto接口。还有Bus.hasRegistered(Obejct)方法,它可以用来检查对象是否已经在总线上注册过。它还为组件提供Wireable API,该组件监听Activity生命周期,并且可以在连接到Activity的总线实例被破坏时注册或取消注册。

+0

谢谢,你指出我在正确的方向! – ticofab 2015-02-20 11:34:02