EventBusフレームワークの抽出まとめ

1138 ワード

1、EventBus:イベントバスフレーム;コンポーネント間の通信に用いられ、解結合を実現する.
2、ダウンロードアドレス:https://github.com/greenrobot/EventBus
3、使い方:
a、登録:
 EventBus.getDefault().register(this);

b、ログアウト
 EventBus.getDefault().unregister(this);

C、発行
EventBus.getDefault().post(value);

d、購読:onEventで始まる代表購読イベント
onEventMainThreadメソッドはUIスレッドで実行されます
onEventPostThreadメソッドは、現在のパブリッシュイベントのスレッドで実行されます.
BackgroundThreadメソッドは、UIスレッド以外でパブリッシュされたイベントの場合、直接実行され、同じスレッドにパブリッシュされます.UIスレッドでパブリッシュされたイベントの場合は、バックグラウンドタスクキューに参加し、スレッドプールを使用して次から次へと呼び出されます.
Asyncはバックグラウンドタスクキューに参加し,スレッドプール呼び出しを用いて非同期で実行する.
eg.
public void onEventMainThread(String value){
        if(value !=null){
            tv.setText(value);//    UI
        }

    }

4、原理
(1)EventBusは一例であり、EventBus.getDefault()を使用して取得する.
(2)registerの登録時に現在のクラスとその親クラスを巡回し、onEventの先頭にある1つのパラメータしかないPublicメソッドを巡回してMapに格納し、パラメータはkey、メソッドはvalueである.
(3)postを発行する際にパラメータに基づいてMapを遍歴し,メソッド名を得る.
(4)反射実行方法を用いる.
参考資料:http://blog.csdn.net/lmj623565791/article/details/40920453