2015-02-10 74 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