项目中一个地方,需要传递一个很大很大的列表数据(model也特别复杂,盛放的数据量也很大),大到什么程度呢?直接导致跳转Activity时用Intent传值 APP崩溃了.
崩溃Exception: TransactionTooLargeException
其实用Intent传值,是有一个最大的数据限制的,这个限制,不同的手机上不太一样.当我们觉得一个数据实在特别大(比如一个很大的Bitmap)的时候,就别用Intent来传值了.
解决方案:
- static 静态变量
- 单例
- 持久化(文件,SharedPreferences,数据库啥的)
我个人是比较推荐使用单例的方式(只要不是跨进程),这个单例专门用来存储所有的数据,不需要的时候把单例的某个属性赋值为null.