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