eventbus3.0使用
来源:互联网 发布:java字符数组赋值 编辑:程序博客网 时间:2024/06/05 03:14
android studio中build compile ‘org.greenrobot:eventbus:3.0.0’
- 列表内容
由于界面比较多有时候发出去的消息不能接受所以用到粘性事件
分为三步:
准备阶段:
定义接口类型父类,子类用的话直接继承
/** * 父类 * 当前的接口是针对eventbus而设计的,大致都是一些常用的数据类型的封装 * 注意:当前的接口是所有具体页面传递参数的基类: * 1 所有基类规则是去继承这个父类(子类也是接口) * 2 子类可以不用重写父类的方法因为都是接口,在具体传递参数的时候new 出来所有的实现方法,我们只用需要类型的方法就可以了 */public interface EventBusUtils<T> { /** * 对Map的数据封装 */ Map<T, T> ValuesMap(); /** * 对字符串类型封装 */ String ValuesString(); /** * 对集合的封装 */ ArrayList<T> ValuesArrayList(); /** * 对Object封装 */ Object ValuesObject();}/**子类*/public interface OnlineOrderSelectTimeActivityBean extends EventBusUtils {} 1 在需要传输数据的地方发送粘性消息
EventBus.getDefault().postSticky(new OnlineOrderSelectTimeActivityBean() { @Override public Map ValuesMap() { return null; } @Override public String ValuesString() { String day = countTime.substring(5, 10); String time = countTime.substring(10, countTime.length()); return day + " " + selectedweek + time; // 111 } @Override public ArrayList ValuesArrayList() { return null; } @Override public Object ValuesObject() { return countTime; } });
2 在接受数据的地方
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void showEventbus(EventBusUtils eventBusUtils) { if (eventBusUtils instanceof CapteCeaseActivityBean) { //成人儿童预订信息 mevent = (CapteCeaseActivityBean) eventBusUtils; Map valuesMap = mevent.ValuesMap(); aultCount = (int) valuesMap.get("aultCount"); childCount = (int) valuesMap.get("childCount"); homeCount = (int) valuesMap.get("homeCount"); text1 = (String) valuesMap.get("text1"); text2 = (String) valuesMap.get("text2"); text3 = (String) valuesMap.get("text3"); capteOrderHolder.setRightInfo(aultCount, childCount, homeCount, text1, text2, text3); } if (eventBusUtils instanceof CapteOrderHlderTimeInfoBean) { mCapteOrderHlderTimeInfoBean = (CapteOrderHlderTimeInfoBean) eventBusUtils; Map map = mCapteOrderHlderTimeInfoBean.ValuesMap(); startTime = (String) map.get("startTime"); endTime = (String) map.get("endTime"); } }
3 移除粘性事件
@Override protected void onDestroy() { super.onDestroy(); if (mevent != null) { EventBus.getDefault().removeStickyEvent(mevent); } else if (mCapteOrderHlderTimeInfoBean != null) { EventBus.getDefault().removeStickyEvent(mCapteOrderHlderTimeInfoBean); } }
阅读全文
0 0
- EventBus3.0使用总结
- EventBus3.0使用总结
- EventBus3.0使用详解
- EventBus3.0使用
- EventBus3.0的使用
- EventBus3.0使用
- EventBus3.0使用详解
- EventBus3.0使用详解
- EventBus3.0使用
- EventBus3.0使用详解
- EventBus3.0使用介绍
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0的使用
- EventBus3.0使用详解
- EventBus3.0使用详解
- Android手机隐藏代码(手机指令大全)
- ado连接池遇到的问题
- Android 积累
- 牛客网_华为机试_008_合并表记录
- Android UI组件
- eventbus3.0使用
- ELK日志
- android样式和主题(style&theme)
- web项目java后台将html表格导出为word表格文件
- tolua++使用示例
- 子网内主机数、子网数、主机总数计算方式
- Activity、Bundle、请求码与结果码、Intent、广播、服务 (一)
- 文档模式
- Activity、Bundle、请求码与结果码、Intent、广播、服务 (二)