Android EventBus使用详解
来源:互联网 发布:三维立体制作软件 编辑:程序博客网 时间:2024/05/17 23:17
一、概述
EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦
1、添加gradle依赖
compile 'org.greenrobot:eventbus:3.0.0'
2、接收消息的页面注册//注册EventBusEventBus.getDefault().register(this);
3、新建空类主要用来传递消息,也可以传递实体类
public class FirstEvent { private AppScene appScene; private AppDevice appDevice; public FirstEvent(AppScene appScene) { this.appScene = appScene; } public FirstEvent(AppDevice appDevice){ this.appDevice = appDevice; } public AppScene getAppScene(){ return appScene; } public AppDevice getAppDevice(){ return appDevice; }}
4、发送消息
EventBus.getDefault().post(new FirstEvent(appDeviceInfo));
5、接收消息
订阅发布可在不同线程,不可做耗时操作
@Subscribepublic void onEventMainThread(final FirstEvent event) { Log.d("best", "onEventMainThread收到了消息:" + event.getAppDevice().getDeviceMac());}//同一线程订阅发布,不可做延时操作@Subscribepublic void onEvent(final FirstEvent event) {Log.d("best", "onEvent收到了消息:" + event.getAppDevice().getDeviceMac());}//如果UI线程发布,则在子线程执行,如果是在子线程执行,则直接在子线程执行@Subscribepublic void onEventBackground(final FirstEvent event) { Log.d("best", "onEventBackground收到了消息:" + event.getAppDevice().getDeviceMac());}//无论在哪个线程发布,都会创建新的子线程运行onEventAsync
@Subscribepublic void onEventAsync(final FirstEvent event) { Log.d("best", "onEventAsync收到了消息:" + event.getAppDevice().getDeviceMac());}
6、解除注册
EventBus.getDefault().unregister(this);
1 0
- Android EventBus 使用详解
- Android EventBus使用详解
- Android EventBus使用详解
- android-eventbus-使用详解
- Android EventBus使用详解
- Android中开源库EventBus使用详解
- Android中开源库EventBus使用详解
- Android中EventBus使用详解(一)
- Android EventBus工作原理与使用详解
- android进阶路--EventBus使用详解
- Android第三方框架EventBus使用详解
- Android EventBus详解
- Android中EventBus详解
- Android EventBus详解
- Android greenrobot:EventBus详解
- Android EventBus详解
- Android EventBus详解
- Android---EventBus详解
- PixelFormat 图像颜色的数据格式
- [我眼中的C#]文件读写操作
- javascript和as的结合解决禁止flash的右键功能
- Spring框架第一天
- Navicat for mysql Mac版 快捷键
- Android EventBus使用详解
- React点击空白部分隐藏弹出层;React阻止事件冒泡失效)
- App启动速度优化
- vmware简易安装时无法手动安装vmware tools
- 题目1017:还是畅通工程
- GCC C语言处理主要函数之c_register_pragma
- Zuul(SpringCloud学习笔记一)
- SVM:从理论到OpenCV实践
- 单片机电平