Android,注册碎片/活动以外的奥托活动?
问题描述:
Otto在使用活动或片段时效果很好,但是我可以订阅没有/onResume
/onDestroy
方法的课程中的活动吗?如果是这样,unregister
的最佳做法是什么?Android,注册碎片/活动以外的奥托活动?
答
Otto没有检查对象是否已注册的方法。这就是为什么最佳实践说你应该更好地使用你提到的生命周期方法之一。
如果您在这些方法之外注册,则可以定义一个boolean
字段并将其设置为true
(如果您已经注册了一个对象)。如果此字段为true
,则不需要再次注册。当您完成此对象时,请不要忘记取消注册(例如,在Activity.onDestroy()
中,您可以发布注销所有此类实例的消息)。
您还可以查看TinyBus库,它扩展了Otto接口。还有Bus.hasRegistered(Obejct)
方法,它可以用来检查对象是否已经在总线上注册过。它还为组件提供Wireable API,该组件监听Activity
生命周期,并且可以在连接到Activity
的总线实例被破坏时注册或取消注册。
谢谢,你指出我在正确的方向! – ticofab 2015-02-20 11:34:02