8.1 消息通信 EventBus

  EventBus是一个事件发布和订阅的框架。EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast 在Fragment,Activity,Service,线程之间传递消息优点是开销小,代码更优雅。以及将发送者和接收者解耦。 基本使用方法如下:

  1. 自定义一个类,可以是空类,比如:public class AnyEventType { public AnyEventType(){} }
  2. 在要接收消息的页面注册:EventBus.getDefault().register(this); 
  3. 发送消息,发送过去的是我们新建的类的实例:eventBus.post(new AnyEventType event); 
  4. 接受消息的页面实现(共有四个函数,各功能不同):
    • onEvent()                         发布事件和接收事件线程在同一个线程,不能执行耗时操作
    • onEventMainThread()              在UI线程中执行,也不能执行耗时操作
    • onEventBackgroundThread()  若从主线程发出,在子线程中执行;若从子线程发出,就在该线程执行
    • onEventAsync()                       无论事件在哪个线程发布,都会创建新的子线程在执行

  5. 解除注册:EventBus.getDefault().unregister(this); 

  参考:

    http://blog.csdn.net/harvic880925/article/details/40660137

    http://www.jianshu.com/p/31e3528ca7e5

原文地址:https://www.cnblogs.com/keyarchen/p/6063183.html