EventBus-通信框架
2016-03-21 11:47
218 查看
入门案例
Step_1:在需要接收处理结果的地方初始化.
Step_2:在需要发出数据的地方
参数result可以是任何自定义的对象类型. 如
Step_3:在注册EventBus的类中通过
背景:
1. 实际开发中,需要将数据在各个类中传递,如
2. 本人在一个ZBar连扫的Cordova插件中,当扫描获取数据时若通过CallbackContect回调给js,不能保持界面. 而参考了
EventBus简介
基于发布者/订阅者模式
Step_1:在需要接收处理结果的地方初始化.
// 注册EventBus if (!EventBus.getDefault().isRegistered(this)){ EventBus.getDefault().register(this); }
Step_2:在需要发出数据的地方
post()提交结果.
参数result可以是任何自定义的对象类型. 如
Person.
// 将结果保存进EventBus维护的全局数据池中 EventBus.getDefault().post(result);
Step_3:在注册EventBus的类中通过
onEvent()接收结果.
// 传来的参数会匹配onEvent的形参,且拿到结果,本例未使用对象类型 public void onEvent(String result){ Toast.makeText(this, result, Toast.LENGTH_SHORT).show(); }
背景:
1. 实际开发中,需要将数据在各个类中传递,如
Activity、Fragment、Service、Thread等之间. 通常会使用Handler机制来传递,但这极大的增加了代码的耦合性,并且逻辑不易实现,也不利于维护和辨识.
2. 本人在一个ZBar连扫的Cordova插件中,当扫描获取数据时若通过CallbackContect回调给js,不能保持界面. 而参考了
EventBus后发现很轻松的解决了数据的传递,并且使用起来也非常的优雅和通透.
EventBus简介
基于发布者/订阅者模式
相关文章推荐
- 使用base64:URL的优缺点
- Problem N
- BW ZCHANGE_PACKAGE
- 在mac console下 执行c++文件
- PSP记录个人项目耗时情况
- SharedPreferences详解
- Problem P
- iOS-OC-NSDictionary和NSMutableDictionary用法大全详细说明
- DataBinding学习(五)
- 区块链需要解决诸多问题
- MySQL分页SQL和ORACLE分页SQL
- 软件测试经典书籍推荐
- 解决SharePoint 的Excel文件, 使用本地打开Excel 2010 打开报错。
- DBA scripts
- CSS链接
- 7、JSONArray的应用
- 二叉树的前序遍历
- sentos文件误删除恢复
- 3月20,html
- ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)