Android:EventBus-3 基本使用

EventBus采用的是订阅者设计模式

一、定义一个用来通信的类

public class MyEvent{    private String message;    public MyEvent(String message){        this.message = message;    }    public String getMessage(){        return message;    }}

二、接收方注册/注销EventBus

public MyActivity{    public void onCreate(Bundle){        EventBus.getDefault.register(this);    }    public void onDestory(){        EventBus.getDefault.unregister(this);    }}

三、接收方提供回调方法

注解参数说明:
threadMode():指定该方法执行在哪个线程,默认运行在发送者线程

参数名 参数说明
PostThread 默认选项,订阅者将会运行在发送者所在的线程
MainThread 订阅者将会被回调到UI线程中运行,如果发送者运行在主线程,则采用直到而非回调方式发送消息
BackgroundThread 订阅者运行在子线程,如果发送者运行在非UI线程,这采用直到而不会创建新线程
Async 订阅者运行在子线程,无论发送者在什么线程,都会创建新线程

sticky()
有时候某个事件可能会用到多次,比如最新的位置更新信息,可能需要多次用到,真对这种情况,您可以把该事件发布为Sticky Event,然后,当需要查询该信息的时候,可以通过Bus的getStickyEvent(ClasseventType) 函数来查询最新发布的Event对象。
同一类型的事件只保存最新的Event对象。
注册和发布事件的函数分别为 registerSticky(…) 和 postSticky(Object event)

priority()
设置事件的优先级

public MyActivity{    @Subscribe(threadMode = ThreadMode.MainThread)    public void myEvent(MyEvent event){        Syso(event.getMessage);    }}

四、发送者发送信息

    EventBus.getDefault().post(new MyEvent("hello"));

更多相关文章

  1. android 触摸事件传递机制与笔记
  2. Android 多线程之 Handler 基本使用
  3. android 百度地图定位与覆盖物的添加,以及他们的点击事件
  4. android的窗口机制分析------事件处理
  5. Android Touch事件传递机制
  6. Android线程池
  7. Android Java 线程池 ScheduledThreadPoolExecutor源码篇
  8. Android 设备+APP+号码信息

随机推荐

  1. Android设备兼容性 1
  2. Android(安卓)Studio安装及首次运行遇到
  3. 百度云推送实践
  4. android中使用zxing扫描二维码以及条形码
  5. Android的安装过程
  6. Android(安卓)AsyncTask 原理及Java多线
  7. Android(安卓)studio gradle文件说明与配
  8. Android(安卓)四种绑定监听事件的方式
  9. android,java只是知识点总结
  10. android 实现圆角imageView的两种方法