(官方一点的说法:EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。)
第一反应,不用写handler了有没有?不用interface出一堆接口了不是,就是不熟悉,熟悉熟悉就好了,就像刚用studio的时候。。。
大概流程:
1.定义一个类,用于传递
public class AaEvent {
private String mMsg;
public AaEvent(String msg) {
mMsg = msg;
}
public String getMsg(){
return mMsg;
}
}
2.接收消息的页面注册 在onCreate()里注册 EventBus.getDefault().register(context);
3.发送消息EventBus.getDefault().post(new AaEvent("学习"));
4.接收消息的页面 onEventMainThread(AaEvent event)*要有@Subscribe注解啊
onEventPostThread()
onEventBackgroundThread()
onEventAsync()
这四个模式不太懂?
5.解除注册(解绑)在onDestroy()里EventBus.getDefault().unregister(this);
感觉这么复杂呢?直接写广播不行吗?
先这样,待更新。。。
网友评论