0

我已經獲得了從異步HTTP請求接收到的對象視圖的活動。我使用EventBus與對象和活動中的下列方法來發布事件:在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,然後註冊該活動解決方案使用粘滯事件?如果不爲空,我會註冊該活動。

我想知道什麼是在Android中使用EventBus和視圖的最佳方法。 預先感謝;)

回答

6

如果您在onCreate註冊,請考慮在onDestroy註銷。

此外,請查看registerSticky,如果可用,立即發送一個事件。

+0

註冊活動推薦? – honnix

+1

使用生命週期方法註冊活動(和片段)是常見的做法。 –