Android Studio教程05-Parcelables和Bundles.md
Parcelable并且Bundle对象旨在用于跨IPC / Binder事务等进程边界,活动与意图之间以及跨配置更改存储瞬态。本页面提供使用Parcelable和Bundle对象的建议和最佳实践 。
在活动之间发送数据
当应用程序创建一个Intent用于startActivity(android.content.Intent)启动新Activity 的对象时 ,应用程序可以使用该putExtra(java.lang.String, java.lang.String) 方法传入参数。
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("media_id", "a1b2c3");
// ...
startActivity(intent);
OS Bundle包含意图的基础。然后,操作系统创建新的活动,取消数据包裹,并将意图传递给新活动
- 我们建议您使用
Bundle该类在Intent对象上设置操作系统已知的基元。Bundle类可以有效处理编组和解组 - 有时候,我们需要在activity之间发送复杂的数据或者对象时
- 建议实现
Parcelable接口 + 提供writeToParcel(android.os.Parcel, int)方法 - 提供一个CREATOR参数来实现
Parcelable.Creator接口,该接口的createFromParcel()方法用于将Parcel后退转换为当前对象
- 建议实现
- 通过Intent传数据是,建议只传
1-10kb
进程之间发送数据
- 在进程之间发送数据与在活动之间执行数据类似。
- 但是,在进程之间发送时,我们建议您不要使用自定义的可分区。如果您将自定义
Parcelable对象从一个应用程序发送到另一个应用程序,则需要确保发送应用程序和接收应用程序都具有完全相同的自定义类别版本。通常这可能是跨两个应用程序使用的通用库。如果您的应用程序尝试向系统发送自定义parcelable,则会发生错误,因为系统无法解组它不知道的类。 Binder事务缓冲区具有有限的固定大小,当前为1MB,由进程中的所有事务共享。由于此限制处于流程级别而非每个活动级别,因此这些事务包括应用程序中的所有绑定事务,例如onSaveInstanceState,startActivity和与系统的任何交互。当超过大小限制时,将引发TransactionTooLargeException。- 对于
savedInstanceState的具体情况,数据量应该保持很小,因为只要用户可以导航回该活动(即使活动的进程被终止),系统进程也需要保留提供的数据。我们建议您将保存状态保持为小于50k的数据。
Android Studio教程05-Parcelables和Bundles.md的更多相关文章
- Android studio教程
Android studio教程: http://jingyan.baidu.com/season/44062
- Android Studio教程从入门到精通
最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...
- Ubuntu1404配置jdk-12.0.2并安装Android Studio教程
最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...
- Android Studio 教程
Android Studio 超详细安装教程 http://dkylin.com/archives/2019/android-studio-installation.html Android Stud ...
- Android Studio教程--给Android Studio安装Genymotion插件
打开Android Studio,依次[File]-[Settings] 在打开的settings界面里找到plugins设置项,点击右侧的“Browser..”按钮 在搜索栏里输入genymotio ...
- Android Studio教程--Android Studio 2.1安装与配置
1.下载Android Studio 去官网https://developer.android.com/studio/index.html下载最新版的Android Studio2.1(自备梯子) 或 ...
- Mac下载安装Android Studio教程
今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...
- Android studio教程:[6]创建多个Activity
通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面.于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Acti ...
- Android studio教程:[5]活动的生命周期
想要学好安卓开发,就必须理解安卓软件的生命周期,明白一个活动的创建.启动.停止.暂停.重启和销毁的过程,知道各个阶段会调用什么函数进行处理不同的情况,这里我就通过一个简单的例子让大家明白一个活动的生命 ...
- Android studio教程:[4]真机测试
有了Android studio这么好用的软件,自然要有一部不错的安卓手机,然后在真机上测试自己的程序,那样才能更好的发现程序中存在的问题,毕竟模拟器不是真正的手机嘛. 工具/原料 Android s ...
随机推荐
- Python 转化成 PB 格式数据
一.概述 Protocol Buffers 是 Google 公司开发的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯 ...
- 学习CSS3之实心圆
CSS3是最新版本的CSS,学习后可以更好的用于工作及自己修改自己代码的各种样式. border-radius圆角方法画实心圆.相当于在长方形(正方形)上画半径为边长一半的圆弧. 效果如上图,代码如下 ...
- 机器学习——KMeans聚类,KMeans原理,参数详解
0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...
- [译]PEP 380--子生成器的语法
导语: PEP(Python增强提案)几乎是 Python 社区中最重要的文档,它们提供了公告信息.指导流程.新功能的设计及使用说明等内容.对于学习者来说,PEP 是非常值得一读的第一手材料,学习中遇 ...
- 强化学习(十五) A3C
在强化学习(十四) Actor-Critic中,我们讨论了Actor-Critic的算法流程,但是由于普通的Actor-Critic算法难以收敛,需要一些其他的优化.而Asynchronous Adv ...
- python之循序渐进学习装饰器
python装饰器的定义:在代码运行期间在不改变原函数定义的基础上,动态给该函数增加功能的方式称之为装饰器(Decorator) 装饰器的优点和用途: 1. 抽离出大量函数中与函数功能本身无关的的雷同 ...
- 简述Java变量和强制转换类型
简述Java变量和强制转换类型 java变量 1. java变量 变量:顾名思义,就是在java执行程序过程中可以发生改变的量,就好比方程式中的未知数X一样. 变量的内存分配过程 int a ; // ...
- 二级联动,三级联动,初学者,纯javascript,不含jQuery
二级联动: html代码: <body> <select id="province" onchange="getCity(this.options.se ...
- Canvas引入跨域的图片导致toDataURL()报错的问题的解决
本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下: [场景] 用户打开网页,则请求腾讯COS(图片服务器)上的图片js代码.使用canvas绘图. ...
- Linux如何管理文档多租户
例题 同一群组microsoft下的两个账号justmine001和justmine002需要共同拥有目录/microsoft/eshop的开发权,以便进行协同工作,但是其他人不允许进入和查阅该目录. ...