一部の定義済みの子がサブスクリプションを持たない可能性がある基本クラスでの自動登録の場合。 これは、バス上の構成値またはregisterOptional
メソッドである可能性があります。
:+1:
EventBusに登録してはならない子クラスで空を上書きするオーバーライド可能なメソッドにregister呼び出しを移動してみませんか? どのクラスが登録され、どのクラスが登録されないかがはるかに明確になり、サブスクライバーメソッドの検索のパフォーマンスオーバーヘッドが無効になります。
何かのようなもの:
public abstract class BaseClass {
protected void registerEventBus() {
EventBus.getDefault().register(this);
}
}
public class ChildClass extends BaseClass {
<strong i="7">@Override</strong>
protected void registerEventBus() {
// do not register to EventBus
};
}
-ut
正直なところ、バスに登録している子クラスと登録していない子クラスを追跡することに興味がないからです。 いつでも任意のアクティビティ/フラグメントにサブスクリプションを追加して、それを「正常に機能」させたいです。 これが追加する小さなパフォーマンスオーバーヘッドが何であれ、開発者は快適に過ごす価値があります。
他の誰かがこれを探している場合、私の現在の回避策は、基本クラス内のダミークラスにサブスクリプションを追加することです。
最も参考になるコメント
正直なところ、バスに登録している子クラスと登録していない子クラスを追跡することに興味がないからです。 いつでも任意のアクティビティ/フラグメントにサブスクリプションを追加して、それを「正常に機能」させたいです。 これが追加する小さなパフォーマンスオーバーヘッドが何であれ、開発者は快適に過ごす価値があります。
他の誰かがこれを探している場合、私の現在の回避策は、基本クラス内のダミークラスにサブスクリプションを追加することです。