EventBus3.0の簡単な使用
1560 ワード
EventBusの概要 EventBusは、図 のようなAndroidのパブリッシャ/サブスクライバモードのオープンソースライブラリです.
EventBus使用シーン(デカップリング)コンポーネント間のインタラクション コールバック使用シーン 放送使用シーン Activity間のインタラクション、ActivityとFragment間のインタラクション、Fragment間のインタラクション、および異なるスレッドの可視インタラクション .複雑で誤った依存とライフサイクルの問題を回避 より高速、特に最大化された利用性能 より小さい 特徴:スレッドキー伝達、 特長注記 プライマリ・スレッド転送:UIとのインタラクションが必要な場合、eventはそのスレッドに関係なくプライマリ・スレッドに転送できます.
プロジェクトにEventBusを追加
EventBusの使用、手順:
1、eventの定義(javaオブジェクトの定義)
2、購読者準備 eventが発行されると、購読者は に呼び覚まされる.購読者は登録と登録解除を必要とする 登録(onStart() 登録解除(onStop()
3、発表者がeventを発表するは、イベントを任意の場所で発行することができるので、現在登録されている購読者は、イベントタイプに応じてイベントを受信する. リリース 4、購読者はメッセージを受け取る 3.0以上で、パブリッシャーが発行した情報を受信する方法には特定のフォーマットがありません.すなわち、方法の名前は任意に設定できます. パブリッシャがメッセージを発行すると同時に、すべてのサブスクライバがトリガーされ、イベントMessageEventによってサブスクライバが受信する情報 が区別される
EventBus使用シーン(デカップリング)
プロジェクトにEventBusを追加
compile 'org.greenrobot:eventbus:3.0.0'
EventBusの使用、手順:
1、eventの定義(javaオブジェクトの定義)
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
2、購読者準備
EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);
3、発表者がeventを発表する
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
@Subscribe(threadMode = ThreadMode.MainThread)
public void helloEventBus(MessageEvent message){
mText.setText(message.message);
}