Android使用EventBus传递事件

EventBus使用过程很简单
EventBus官网

1.引入

// module.app build.gradle
dependencies {
	//...
    implementation 'org.greenrobot:eventbus:3.2.0'
}

2.创建Event

public class MessageEvent {
    public final String message;
    public MessageEvent(String message) {
        this.message = message;
    }
}

3.设置监听和声明周期,以MainActivity的片段为例

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageEvent(MessageEvent event) {
        Toast.makeText(getBaseContext(), event.message, Toast.LENGTH_LONG).show();
    }

    @Override
    protected void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
    }

    @Override
    protected void onStop() {
        EventBus.getDefault().unregister(this);
        super.onStop();

    }

4.发送Event,这里在Application中模拟了一个异步任务

new Thread(new Runnable() {
         @Override
         public void run() {
             try {
                 Thread.sleep(3000);
                 EventBus.getDefault().post(new MessageEvent("Hello bro"));
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
         }
     }).start();`

你可能感兴趣的:(android)