2017-04-06 66 views
-1

我在一個活動中註冊了事件總線,如 - EventBus.getDefault.register(this);公共事件總線實例

但現在我想取消註冊到另一個activity.So如何實現它?

+0

可能重複[是事件總線註銷必要](http://stackoverflow.com/questions/30486497/is-an-event-bus-unregister-必要) –

+0

您可以使用相同的註冊活動進行註銷在不同的活動中,如果你有參考註冊活動。但建議取消註冊onPause狀態的活動。否則會導致內存泄漏。 – Krish

+0

@克里希你能給我一個簡單的例子嗎? – sanil

回答

1

但現在我想取消註冊到另一個活動。

您不能取消註冊其他活動,因爲它沒有註冊。您必須取消註冊您註冊的同一個對象。通常onResume()/onPause()是處理它的好地方。

+0

但是當我從後臺刪除我的應用程序時,我應該如何註銷該相應活動的事件總線,因爲我將它註冊到onStart()並在onDestroy()方法中取消註冊它? – sanil

+0

這聽起來很糟糕的設計。當你在後臺登記時,你需要註冊哪些活動?用戶可能永遠不會回到它,所以沒有意義。 –

+0

不,我在啓動器活動中創建了一個Subscriber方法,我需要在其他活動中通過事件發佈來調用,這就是爲什麼我在onDestroy()而不是OnPause()中註銷事件總線的原因。我應該註銷那個事件總線嗎? – sanil