Android:EventBus-3 基本使用
2016-07-18 11:46
393 查看
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 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"));
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories