Android 消息分发使用EventBus的实例详解
Android消息分发使用EventBus的实例详解
1.AndroidStudio使用
dependencies{
//最新版本
compile'org.greenrobot:eventbus:3.0.0'
//可以翻倍提高EventBus使用效率
provided'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1'
}
2.在基类Activity中配置
/**
*Activity基类
*/
protectedEventBuseb;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//单例模式获取到实例并注册
eb=EventBus.getDefault();
eb.register(this);
}
@Override
protectedvoidonDestroy(){
//反注册
eb.unregister(this);
super.onDestroy();
}
//主线程
@Subscribe(threadMode=ThreadMode.MAIN)
publicvoidonMainEvent(EventBeanevent){
}
//主线程粘性(比如传递intent使用)
@Subscribe(sticky=true,threadMode=ThreadMode.MAIN)
publicvoidonMainStickEvent(EventBeanevent){
}
//后台
@Subscribe(threadMode=ThreadMode.BACKGROUND)
publicvoidonBackgroundEvent(EventBeanevent){
}
//重新开启一个线程来执行
@Subscribe(threadMode=ThreadMode.ASYNC)
publicvoidonAsyncEvent(EventBeanevent){
}
一般情况下,常用重写onMainEvent()方法即可。
3.创建自定义消息实体
//根据不同需求自定义
/**
*自定义Event消息
*/
publicclassEventBean{
publicintid;//类型标识
publicObjectdata;//数据对象
//省略constructor&getter&setter
}
4.发送消息
继承自基类Activity后: eb.post(newEventBean(1,"data")); //粘性 eb.postSticky(newEventBean(1,"data"));
5.消息处理
根据数据处理的需求重写基类的4个方法即可。
以上就是Android消息分发使用EventBus的实例,如有疑问请留言或者到本站社区交流讨论,本站关于Android的文章还有很多希望大家搜索查阅,谢谢大家对本站的支持!