3
我執行MVP在Android的模式,我使用EventBus讓知道,從活動的「A」的東西的P resenter發生在活動「B」,以更新事件總線註銷來自「A」的意見。是必要的
我註冊的主持人EventBus裏面的構造函數,但我沒有看到任何我可以取消註冊的地方。
public class PresenterA extends nucleus.presenter.Presenter<ViewA> {
public PresenterA() {
EventBus.getDefault().register(this);
}
public void onEvent(ChangesEvent e) {
// change views
}
}
- 是否有必要註銷所有,當主持人是假設住,只要應用程序(它沒有重新上配置變化)?
- 當用戶離開應用程序時(關閉活動「A」),引用將被釋放還是內存泄漏?
了'Application'並沒有真正結束,直到安卓殺死它按照HTTP://計算器.com/a/27193094/2413303,但有一個不能死的引用大多會成爲View層次結構(Activities/Fragments)的問題。 – EpicPandaForce
EventBus.getDefault()確實是一個靜態引用,但它保存對Activity關閉時與視圖分開的演示者的引用。這是否被認爲是內存泄漏? –
此外,如果您未取消註冊,則某個公交事件處理程序中的某些UI代碼可能會嘗試呼叫已經回收或放置的視圖 – eduyayo