我遇到了這個問題。我的Activity
是片段容器,所以要在活動和片段之間進行通信,我使用普通的Callback
方法。在這種情況下,我的活動必須根據片段數量實現大量的回調接口。
我不喜歡硬編碼和不可讀的代碼。在我的情況下,我的類聲明可能需要幾行來列出所有接口。
我想擺脫這一點。Android中的片段回調vs EventBus
還有一種方法是使用EventBus
模式。
在活動
EventBus.getDefault().register(this);
在片段
EventBus.getDetault().post(new MyEvent(description));
而且在活動處理若干事件類型。
也許會有更好的使用EventBus在這裏,而不是默認的回調方法??
或者,也許有我的錯,我的活動是持有很多片段(上帝對象),最好是使用活動,而不是片段?
請提出哪種方法更好?
MyEvenet中的「發件人」屬性不會提供誰提出該事件的想法? OP有 'EventBus.getDetault()。post(new MyEvent(description));' – OmarBizreh
@OmarBizreh //是的。這有助於。但是我們必須記住,'sender'可能是_null_。 – Youngjae
我明白了,所以唯一的缺點是事件的來源,我要開始一個新的項目並使用EventBus,還有什麼我需要檢查?到目前爲止,我看到的所有SO鏈接都提到事件的來源是迄今爲止最糟糕的退步。 – OmarBizreh