Activity跳转通过EventBus传值问题
根据阿里发布的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
Activity跳转通过EventBus传值问题的更多相关文章
- Android学习之Activity跳转与传值
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. 一.Activity跳转 方法一 Intent intent = new Intent(A.this, ...
- android activity 跳转传值问题研究
intent = new Intent(); intent.setClass(LoginActivity.this, RegActivity.class); startActivity(intent) ...
- EventBus的使用,初学EventBus传值
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
- 用Dart&Henson玩转Activity跳转
用Dart&Henson玩转Activity跳转 Extra是Android标准的组件之间(Activity/Fragment/Service等)传递数据的方式.本文介绍了开源项目Dart的使 ...
- Android之Activity跳转
简述 如果把每个activity看成一个页面的话,那么activity之间的跳转和页面的之间的跳转基本上是一样的.首先需要监听一个事件,当这个事件发生的时候,就进行跳转.html中有个<a sr ...
- 【原创】Android 从一个Activity跳转到另外一个Activity
Android四大组件activity使用,实现两个activity之间的跳转 基本流程:创建两个activity-将其中一个activity中组件作为事件源-通过组件事件的处理借助intent对象实 ...
- tabhost中activity跳转动画不显示的解决办法
[1]如果是tabhost中的activity跳到其他的activity,用这篇blog的方法即可 http://blog.sina.com.cn/s/blog_8db8914301010t31.ht ...
- android 15 activity跳转
从一个屏幕跳到另一个屏幕,一个activity跳转到另一个activity,Intent类用于组件之间传递数据和跳转,组件包括不仅activity. package com.sxt.day04_01; ...
- Android Activity跳转动画,让你的APP瞬间绚丽起来
我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单 ...
随机推荐
- [Angular] Wrap a third party lib into service
- bat文件从@含义起
今天看到一个批处理文件,内容很简单,执行很方便,学习了一下才知道就是一条条的dos命令, 掌握其中的几个常用命令能看懂别人的文件就行了 1.@ 一般紧随其后 类似@echo off 其作用类似于ech ...
- Oracle数据库零散知识04 --- 其常用内置函数
1,数值函数 Select abs(-9),--9 绝对值 Mod(5,3),--2 余数 Sign(-9),-- -1 标记 Ceil(9.4),--10 Floor(9.8),--9 Sqrt(1 ...
- kettle的job中运行每行
job中运行每行 有时,我们须要job或转换执行多次.且每次传入的參数都不同.假如你正在做数据迁移的工作,须要导入每天的旧数据,则须要一个job依据指定的日期导入数据,该日期被指定作为參数.假设 ...
- Misultin, Mochiweb, Cowboy, NodeJS 及 Tornadoweb测评
http://www.oschina.net/translate/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb ...
- 安装CentOS6.2操作系统
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...
- 【32.89%】【codeforces 574D】Bear and Blocks
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 构建工具Gradle
1.Summary 从Android团队开始宣布放弃Eclipse转投Android Studio时,构建工具Gradle进入了Android开发者的视野.而随着热修复.插件化.编译时注解的流行, ...
- 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
维纳过程又叫布朗运动过程(Brownian motion): 1. 维纳过程 维纳过程 Wt 由如下性质所描述: W0=1, a.s.(a.s.,almost surely)
- 组态档(configuration file)与建构档
组态档,或者叫 configuration file,配置文件.组态档是用一种建构软件专用的特殊编程语言写的 CMake 脚本. 使用组态档能改变程序的设置,而不用重新编译程序. CMake 的组态档 ...