EventBus 《四》 事件的优先级及其EventBus Demo
2015-08-01 10:03
281 查看
事件优先级Priority
`register`的函数重载中有一个可以指定订阅者的优先级,我们知道`EventBus`中有一个事件类型到List<Subscription>的映射,在这个映射中,所有的Subscription是按priority排序的,这样当post事件时,优先级高的会先得到机会处理事件。优先级的一个应用就事,高优先级的事件处理函数可以终于事件的传递,通过`cancelEventDelivery`方法,但有一点需要注意,`这个事件的ThreadMode必须是PostThread`,并且只能终于它在处理的事件。
# 缺点
无法进程间通信,如果一个应用内有多个进程的话就没办法了
# 注意事项及要点
同一个onEvent函数不能被注册两次,所以不能在一个类中注册同时还在父类中注册
当Post一个事件时,这个事件类的父类的事件也会被Post。
Post的事件无Subscriber处理时会Post `NoSubscriberEvent`事件,当调用Subscriber失败时会Post `SubscriberExceptionEvent`事件。
其他
`EventBus`中还有个Util包,主要作用是可以通过`AsyncExecutor`执行一个Runnable,通过内部的RunnableEx(可以搜索异常的Runnable)当Runnable抛出异常时通过`EventBus`发消息显示错误对话框。没太大兴趣,不作分析项目主页: http://download.csdn.net/detail/androidstarjack/8925145
一个很简单的Demo,Activity中包含列表和详情两个Fragment,Activity启动时加载一个列表,点击列表后更新详情数据:EventBusDemo
相关文章推荐
- 最强AngularJS资源合集
- Hdu 5326 2015多校对抗赛三
- [置顶] QuaZip源码编译及其编解码功能的测试
- java 基础知识2
- hdu 1689 Just a Hook
- 判断两棵二叉树是否相似
- JAVA 并发编程-线程同步通信技术(Lock和Condition)(十)
- PHP---运行时出现waring如何取消
- mysql 无法启动,错误1067,进程意外终止(特殊解决方法)
- Palindrome Partitioning
- DISK&SSD SPEED
- Android动画总结
- Openssl sess_id命令
- C程序将注册信息保存到数据库
- 总结分享下日常生活中用到的一些功能,很好很强大,功能很多有20个,希望大家喜欢
- EventBus 《三》 事件的具体用法及其讲解
- 如何用代码开启“个人热点”功能?如何用代码把iOS设备设置成一个无线路由?
- UVA 12003 Array Transformer
- get()用法
- Hdu 5325 2015多校对抗赛三