安卓EventBus 两步走
来源:互联网 发布:怎样申请淘宝子账号 编辑:程序博客网 时间:2024/05/21 01:30
Step1: 在build.gradle 中引入依赖
compile 'org.greenrobot:eventbus:3.0.0'
Step2: 以前跨多个界面更新UI可能会用到广播等,现在用eventbus非常方便
1.场景: eventbus可以在Activity、Fragment、BroadcastReceiver等中使用
2.使用:发送这边做发送处理,在接收这边注册即可
如A给B界面传递账号、密码的参数
A界面中的处理:
//手机号 和 密码HomeMingGroupEvent bean = new HomeMingGroupEvent();bean.setPhone(phone);bean.setPassword(password);EventBus.getDefault().post(bean);
public class HomeMingGroupEvent {
private String phone;private String password;public String getPhone() { return phone;}public void setPhone(String phone) { this.phone = phone;}public String getPassword() { return password;}public void setPassword(String password) { this.password = password;}
}
这种看着像能直接用Intent和startActivityForResult完成的操作
前者是直接的跳转 、后者是跳转后的回调 但是eventbus可以在跨多个界面做更新,当然并不一定要携带参数。因为我只需要告诉接收界面做更新的话可以直接这样写
//HomeMingGroupEvent 空的Bean类EventBus.getDefault().post(new HomeMingGroupEvent());//什么也不需要,只做通知public class HomeMingGroupEvent {}
B界面中的处理:
EventBus.getDefault().register(this); //注册
//注意 如果像上面这样写运行报类似 unregister 的错误就这样写 抽风了…
if (!EventBus.getDefault().isRegistered(this)) { EventBus.getDefault().register(this); //注册 }
@Subscribe(threadMode = ThreadMode.MAIN) //在ui线程执行 public void onSwitchEvent(HomeMingGroupEvent event) { //MAIN UI主线程 //BACKGROUND 后台线程 //POSTING 和发布者处在同一个线程 //ASYNC 异步线程 //TODO 这里可以做更新UI、请求等的操作 一般MAIN就可以了 //上面A界面的发送操作若是在按钮点击事件里 点击后就行执行到这里了 }
最后注销即可:
@Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this);//注销 }
阅读全文
0 0
- 安卓EventBus 两步走
- 安卓 EventBus
- 安卓EventBus的使用
- 安卓组件通信:eventBus的使用
- 安卓高级EventBus使用详解
- 安卓使用EventBus实现消息传递
- 安卓Android事件总线EventBus简单使用
- 安卓onResume()代替EventBus刷新数据情况
- 技术文章 | 安卓开发笔记——探索EventBus
- 安卓开发之EventBus的使用分享以及例子源码
- 安卓开发框架(MVP+主流框架+基类+工具类)--- EventBus
- (安卓) 购物车二级列表,计算和全反选 以及 EventBus(消息传递)
- (安卓) 购物车一级列表,计算和全反选 以及 EventBus(消息传递)
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- 学习笔记TF044:TF.Contrib组件、统计分布、Layer、性能分析器tfprof
- 阿里2017年校招
- 设计模式之组合模式
- 多态及其多态类型转换
- Android fragment解析
- 安卓EventBus 两步走
- XML解析(二):SAX解析
- 【C++数据结构与算法】括号匹配算法
- 哪种情况会导致持久区jvm堆内存溢出
- 二分图的最大匹配、完美匹配和匈牙利算法
- 仿联系人的排序
- std::numeric_limits::max()编译错误
- 【面经笔记】
- 数据结构-查找二叉树