我读到事务缓冲区有一个1MB的限制,如果超过它,我将得到一个transactiontoolargeexception。我想知道存储在onSaveInstanceState方法中的包是否共享这个1MB?如果没有,我能在那里保存多少信息?是的。
我知道我可以使用保留的片段来保存复杂的数据,但是我真的很想知道这个问题的答案。
谢谢您。
最佳答案
我想知道存储在onSaveInstanceState方法中的包是否共享这个1MB?是的。
对。在所有同时进行的IPC事务中,数据不能超过1MB。因此,为了提高设备的整体性能,请保持您保存的实例状态Bundle
较小。例如,不要将Customer
对象放在Bundle
中;放一个允许您检索Customer
的标识符(尽可能从内存缓存中,或者从备份存储中)。