根据阿里发布的Android开发规范:下载地址:https://102.alibaba.com/downloadFile.do?file=1520478361732/Android_v9.pdf

Activity 间的数据通信,对于数据量比较大的,避免使用 Intent + Parcelable
的方式,可以考虑 EventBus 等替代方案,以免造成 TransactionTooLargeException。

A界面 跳转到 B界面,传对象。

但是用普通的EventBus方法【 EventBus.getDefault.post(xx)  】是存在问题的:问题是由于主界面还未创建,用于接收的EventBus还未注册,即发布者发了消息,但订阅者还未产生(一般消息的处理逻辑是先注册订阅,后接收),这样没有收到消息当然无法响应操作。

EventBus的粘性事件可以解决这样的问题。

基本使用方法:

1,A界面 粘性事件的发布:

EventBus.getDefault().postSticky(barcodeEventBean,"registerData");
//跳转到接收message的界面
Intent intent = new Intent(A.this, B.class);
startActivity(intent);

2,B界面 粘性接收器的注册:

//注册EventBus的粘性事件
EventBus.getDefault().registerSticky(this);

3,B界面 接收A界面传值的方法

@Subscriber(tag = "registerData")
public void getRegisterBarcode(EventBean.BarcodeEventBean barcodeEventBean) {
if(barcodeEventBean != null && barcodeEventBean.getBarcodeList() != null){
Log.e(barcodeEventBean.toString)
} }

4,B界面在销毁的时候,取消注册

@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().removeStickyEvent(EventBean.BarcodeEventBean.class,"registerData");
}
over

最新文章

  1. Centos、Ubuntu 安装 Mono、Jexus
  2. Oracle 11g系列:函数与存储过程
  3. Android activity_main.xml删除边缘距离,充满屏幕
  4. lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法
  5. flask test_client设置cookies
  6. 非常棒的jqChart图表插件
  7. [LeetCode]题解(python):144-Binary Tree Preorder Traversal
  8. jsp设置footer底部内容
  9. yum中$releasever、 $basearch等变量含义
  10. POJ 2370 Democracy in danger(简单贪心)
  11. 我眼中的Linux设备树(五 根节点)
  12. mysql 存储引擎简介
  13. tensorflow函数/重要功能实现
  14. Rabbit原理理解
  15. 01-使用eclipse新建一个标准的 java web项目
  16. 框架源码系列十:Spring AOP(AOP的核心概念回顾、Spring中AOP的用法、Spring AOP 源码学习)
  17. [Luogu 3613] 睡觉困难综合征
  18. ubuntu将GNU nano换成vim
  19. w97常用功能代码
  20. Sprint第二个计划

热门文章

  1. CentOS7下安装Mysql失败经历--CentOS7使用yum安装和卸载Mysql过程
  2. .net程序客户端更新方案
  3. storm 经常使用类
  4. Quartz 在线Cron表达式
  5. HTTP协议中的报文格式
  6. JavaScript window.location物
  7. Qt自定义密码框,先显示后隐藏(继承以后改写slot即可,即与哪个相近就改写哪个)good
  8. oc面试攻略
  9. Verilog分频器
  10. Array类型判断