Parcelable并且Bundle对象旨在用于跨IPC / Binder事务等进程边界,活动与意图之间以及跨配置更改存储瞬态。本页面提供使用ParcelableBundle对象的建议和最佳实践 。

在活动之间发送数据

当应用程序创建一个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的更多相关文章

  1. Android studio教程

    Android studio教程: http://jingyan.baidu.com/season/44062

  2. Android Studio教程从入门到精通

    最新2.0系列文章参考: Android Studio2.0 教程从入门到精通Windows版 - 安装篇Android Studio2.0 教程从入门到精通Windows版 - 入门篇Android ...

  3. Ubuntu1404配置jdk-12.0.2并安装Android Studio教程

    最近在学习Android Studio 移动应用程序开发,但Android Studio好像对win10不太友好,所以小帅想在Ubuntu上安装Android Studio.为此小帅还去网上找了相关教 ...

  4. Android Studio 教程

    Android Studio 超详细安装教程 http://dkylin.com/archives/2019/android-studio-installation.html Android Stud ...

  5. Android Studio教程--给Android Studio安装Genymotion插件

    打开Android Studio,依次[File]-[Settings] 在打开的settings界面里找到plugins设置项,点击右侧的“Browser..”按钮 在搜索栏里输入genymotio ...

  6. Android Studio教程--Android Studio 2.1安装与配置

    1.下载Android Studio 去官网https://developer.android.com/studio/index.html下载最新版的Android Studio2.1(自备梯子) 或 ...

  7. Mac下载安装Android Studio教程

    今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...

  8. Android studio教程:[6]创建多个Activity

    通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面.于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Acti ...

  9. Android studio教程:[5]活动的生命周期

    想要学好安卓开发,就必须理解安卓软件的生命周期,明白一个活动的创建.启动.停止.暂停.重启和销毁的过程,知道各个阶段会调用什么函数进行处理不同的情况,这里我就通过一个简单的例子让大家明白一个活动的生命 ...

  10. Android studio教程:[4]真机测试

    有了Android studio这么好用的软件,自然要有一部不错的安卓手机,然后在真机上测试自己的程序,那样才能更好的发现程序中存在的问题,毕竟模拟器不是真正的手机嘛. 工具/原料 Android s ...

随机推荐

  1. Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFa

    Springboot通过application启动报错 2019-01-25 14:02:33.810 ERROR [restartedMain] org.springframework.boot.S ...

  2. Bootstarp的安装以及简单的使用方法(pycharm中)

    一.安装 首先打开Bootstarp的官网:https://v3.bootcss.com 下载完成后,解压压缩包,把解压后的文件导入pycham中 在HTML页面中的style中导入bootstrap ...

  3. Dynamics 365 CE命令栏按钮点击后刷新表单页面方法

    微软动态CRM专家罗勇 ,回复326或者20190428可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...

  4. 我们是如何通过全球第一免费开源ERP Odoo做到项目100%交付

    传统友商ERP的交付过程 一.先初步需求调研,后选型功能模块 传统友商ERP第一件事情先对客户方进行初步的调研,客户方无论说什么,友商听过算过,只关心你人数多少,有哪些人涉及到哪些模块,接着对模块进行 ...

  5. CRM实施目标、需求、策略、厂商、流程等基本介绍全解

    事实证明,有不少实施了CRM系统的企业经历了失败.这是为何?而据一个在线CRM论坛调查其失败的原因:       67%是因为缺乏组织和管理变革去适应CRM:如组织机构未调整.未融入企业文化.流程不清 ...

  6. 【推荐】桌面版AI伴侣 含2.47 2.49 2.51汉化版

    桌面版AI伴侣,无需安装aiStarter,直接运行bat就能在电脑上启动AI伴侣,启动速度比虚拟机快很多.缺点是对硬件的要求比较高. 文件来自 https://mp.weixin.qq.com/s/ ...

  7. windows防火墙实验-命令行设置远程桌面连接以及禁止浏览器上网

    windows防火墙实验-设置远程桌面连接以及禁止浏览器上网 实验环境: 1.win2008远程桌面服务 2.win7-1 10.10.10.136 3.win7-2 10.10.10.153 实验步 ...

  8. vue 中 vue-router、transition、keep-alive 怎么结合使用?

    <transition :name="name" mode="out-in" name="fade"> <keep-ali ...

  9. CTF比赛 十一月场 Look 复现

    拿到题吧,一般的我的操作就是,先看看审核元素有有没有什么东西,然后去御剑扫描,git泄露,备份文件泄露,不行就再去burp抓包看看头部,换方法(post换成get) 发现不明的头部,这种头部的话可能是 ...

  10. Cocos Creator—优化首页打开速度

    Cocos Creator是一个优秀的游戏引擎开发工具,很多地方都针对H5游戏做了专门的优化,这是我比较喜欢Cocos Creator的一点原因. 其中一个优化点是首页的加载速度,开发组为了加快首页的 ...