事件优先级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

更多相关文章

  1. Android输入事件从读取到分发一:是谁在读取输入事件
  2. Cocos2d-x从C++端调用Android端的非静态函数接口
  3. 认识一下Android 事件分发机制
  4. android click 和onTouch 事件处理机制
  5. Android 事件处理详解(一) —— 基于监听的事件处理 1
  6. android click 和onTouch 事件处理机制 (转)
  7. Android studio3.0 - 解决创建Java工程运行Java的main()入口函数

随机推荐

  1. android之layout布局和ListView中的一些
  2. android多播
  3. android xml解析之SAX
  4. 老罗Android开发视频教程 (android常用UI
  5. Android(安卓)SQLite数据库操作实例
  6. SlidingDrawer 使用
  7. Android和PHP开发最佳实践
  8. Android移动应用开发_基础页面布局总结
  9. 轻松学Android开发
  10. Android判断当前的android设备是否处于联