做一个简单的EventBus应用。
步骤一:定义event事件
public class TestEvent {
String info;
TestEvent(String info){
this.info = info;
}
public String getInfo(){
return info;
}
}
步骤二:subscriber准备工作
①注册`eventBus.register(this);//注册
②`事件处理方法
处理TestEvent事件的方法,在发送事件的线程中使用
public void onEvent(TestEvent event){
info.setText("onEvent"+event.getInfo());
}
处理TestEvent2的方法,在发送事件的线程中调用
public void onEvent(TestEvent2 event){
info.setText("onEvent"+event.getInfo()+"eventType不一样");
}
处理TestEvent1的方法,在主线程被调用
public void onEventMainThread(TestEvent1 event){
info.setText("onEventMainThread"+event.getInfo());
}
步骤三:post
switch (v.getId()){
case R.id.bt_event:
TestEvent event = new TestEvent("本线程到本线程");
eventBus.post(event);
break;
case R.id.bt_event1:
new Thread(new Runnable() {
@Override
public void run() {
TestEvent1 event1 = new TestEvent1("Asyc---》主线程");
eventBus.post(event1);
}
}).start();
break;
case R.id.bt_event2:
TestEvent2 event2 = new TestEvent2("本线程到本线程");
eventBus.post(event2);
break;
}
效果图: