1
Otto在使用活動或片段時效果很好,但是我可以訂閱沒有/onResume
/onDestroy
方法的課程中的活動嗎?如果是這樣,unregister
的最佳做法是什麼?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