美文网首页
Intent附加(Extra)大小限制

Intent附加(Extra)大小限制

作者: XanaHopper | 来源:发表于2017-02-05 20:51 被阅读403次

    Intent是Android系统中十分重要的部分,负担着不同组件之间的沟通桥梁,它可以携带数据,从一个组件传递到另一个组件中。

    在做一个图库部分的时候,根据网络传输来的图片状态列表,展示一个网格状的图库,点击之后进入一个由ViewPager为主的大图查看Activity。这个时候需要将整个图片状态列表传递给大图查看Activity。

    最初,我使用intent.putParcelableArrayListExtra将整个状态列表传送给大图查看Activity,运转正常。但是在某些查看一些很靠后图片的时候,就出现了整个崩溃,回到最原始Activity的情况。

    经过查找资料,Intent(包括Bundle一共)大小限制为不到1MB,所以在超过这个限制之后,就会出现静默崩溃的现象,解决方案两种:

    一、写入临时文件或者数据库,通过FileProvider将该文件或者数据库通过Uri发送至目标。一般适用于不同进程,比如分离进程的UI和后台服务,或不同的App之间。之所以采用FileProvider是因为7.0以后,对分享本App文件存在着严格的权限检查。

    二、通过设置静态类中的静态变量进行数据交换。一般适用于同一进程内,这样本质上数据在内存中只存在一份,通过静态类进行传递。需要注意的是进行数据校对,以防多线程Data Racer出现导致的数据显示混乱。

    相关文章

      网友评论

          本文标题:Intent附加(Extra)大小限制

          本文链接:https://www.haomeiwen.com/subject/tcaeittx.html