EventBus事件总线——优雅地替换Handler
2016-03-31 20:45
246 查看
http://blog.csdn.net/harvic880925/article/details/40787203
http://bbs.itcast.cn/thread-83609-1-1.html
什么是EventBus
EventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。特点是代码简洁,是一种发布订阅设计模式(Publish/Subsribe),或称作观察者设计模式。
下载EventBus
1.
下载EventBus库:
库地址:https://github.com/greenrobot/EventBus/releases
源码地址:https://github.com/greenrobot/EventBus
2.
将下载好的EventBus-2.4.0.jar放入libs即可
如何使用EventBus
1. 定义事件, 定义一个类,继承默认的Object即可,用于区分事件和传输数据。 本例为MsgEvent1和MsgEvent2
2. 添加订阅者:EventBus.getDefault().register(this);
将所在类作为订阅者,框架会通过反射机制获取所有方法及其参数。
订阅者所在类可以定义以下一个或多个方法用以接收事件:
public void onEvent(MsgEvent1
msg)
public void onEventMainThread(MsgEvent1
msg)
public void onEventBackgroundThread(MsgEvent1
msg)
public void onEventAsync(MsgEvent1
msg)
3. 发布者发布事件:EventBus.getDefault().post(new MsgEvent1("主线程发的消息1"));
一旦执行了此方法, 所有订阅者都会执行第二步定义的方法。
4.
取消订阅:EventBus.getDefault().unregister(this);
当订阅者不再被使用,或者被关闭时,最好进行取消订阅,不再接受事件消息。
5.
注意事项:发布者post方法参数是Object类型,也就是可以发布任何事件。订阅者接受消息时,只要定义的是第二步四个方法任意一个,并且参数和发布者发布的一致,即可被执行。发布者也可以通过第二步接收消息,订阅者也可以作为发布者发消息给自己。
http://bbs.itcast.cn/thread-83609-1-1.html
什么是EventBus
EventBus是Android下高效的发布/订阅事件总线机制。作用是可以代替传统的Intent,Handler,Broadcast或接口函数在Fragment,Activity,Service,线程之间传递数据,执行方法。特点是代码简洁,是一种发布订阅设计模式(Publish/Subsribe),或称作观察者设计模式。
下载EventBus
1.
下载EventBus库:
库地址:https://github.com/greenrobot/EventBus/releases
源码地址:https://github.com/greenrobot/EventBus
2.
将下载好的EventBus-2.4.0.jar放入libs即可
如何使用EventBus
1. 定义事件, 定义一个类,继承默认的Object即可,用于区分事件和传输数据。 本例为MsgEvent1和MsgEvent2
2. 添加订阅者:EventBus.getDefault().register(this);
将所在类作为订阅者,框架会通过反射机制获取所有方法及其参数。
订阅者所在类可以定义以下一个或多个方法用以接收事件:
public void onEvent(MsgEvent1
msg)
public void onEventMainThread(MsgEvent1
msg)
public void onEventBackgroundThread(MsgEvent1
msg)
public void onEventAsync(MsgEvent1
msg)
3. 发布者发布事件:EventBus.getDefault().post(new MsgEvent1("主线程发的消息1"));
一旦执行了此方法, 所有订阅者都会执行第二步定义的方法。
4.
取消订阅:EventBus.getDefault().unregister(this);
当订阅者不再被使用,或者被关闭时,最好进行取消订阅,不再接受事件消息。
5.
注意事项:发布者post方法参数是Object类型,也就是可以发布任何事件。订阅者接受消息时,只要定义的是第二步四个方法任意一个,并且参数和发布者发布的一致,即可被执行。发布者也可以通过第二步接收消息,订阅者也可以作为发布者发消息给自己。
相关文章推荐
- TForm.ShowModal只是接管消息循环,禁止外部键盘和鼠标输入到别的窗口,但并不封锁其它窗口继续获取消息(比如WM_TIMER消息仍可被发送到别的窗口上)
- 组合方法(ensemble method) 与adaboost提升方法
- Swift-2.14构造过程
- .NET软件工程师面试总结
- Spring IOC和DI
- get_headers函数判断远程文件是否存在
- windows程序员进阶系列:《软件调试》之O--- WinDbg使用介绍
- 特征工程 for machine learning
- 我的第一个作业
- __declspec(dllimport)的作用
- 一个人的旅行
- 2016-3,第四期培训
- TCP序列号和确认号详解(转载)
- 15数字排序 最后一个最小
- Wireshark-UDP数据报分析&&广播
- 【JQuery】:text表单文本选择器
- Windows media player控件的属性、方法及应用
- (OK) 在Android系统上运行C/C++程序
- ES5新增函数之一: Array, JSON, String, Date
- 广商14级软件工程分数:第三回合