Eventbus: サブスクリプションなしでクラスの登録を許可する

作成日 2016年03月27日  ·  3コメント  ·  ソース: greenrobot/EventBus

一部の定義済みの子がサブスクリプションを持たない可能性がある基本クラスでの自動登録の場合。 これは、バス上の構成値またはregisterOptionalメソッドである可能性があります。

最も参考になるコメント

正直なところ、バスに登録している子クラスと登録していない子クラスを追跡することに興味がないからです。 いつでも任意のアクティビティ/フラグメントにサブスクリプションを追加して、それを「正常に機能」させたいです。 これが追加する小さなパフォーマンスオーバーヘッドが何であれ、開発者は快適に過ごす価値があります。

他の誰かがこれを探している場合、私の現在の回避策は、基本クラス内のダミークラスにサブスクリプションを追加することです。

全てのコメント3件

:+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

正直なところ、バスに登録している子クラスと登録していない子クラスを追跡することに興味がないからです。 いつでも任意のアクティビティ/フラグメントにサブスクリプションを追加して、それを「正常に機能」させたいです。 これが追加する小さなパフォーマンスオーバーヘッドが何であれ、開発者は快適に過ごす価値があります。

他の誰かがこれを探している場合、私の現在の回避策は、基本クラス内のダミークラスにサブスクリプションを追加することです。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

kyze8439690 picture kyze8439690  ·  4コメント

DavidEdwards picture DavidEdwards  ·  11コメント

timroes picture timroes  ·  9コメント

oky2abbas picture oky2abbas  ·  6コメント

ANewAnonymous picture ANewAnonymous  ·  4コメント