【发布时间】:2017-09-15 17:07:10
【问题描述】:
我读到事务缓冲区有一个 1MB 的限制,如果我超过它,我会得到一个 TransactionTooLargeException。我想知道存储在 onSaveInstanceState 方法 中的包是否共享这 1MB?如果没有,我可以在那里保存多少信息?
我知道我可以使用 Retained Fragment 来保存复杂的数据,但我真的很想知道这个问题的答案。
谢谢。
【问题讨论】:
我读到事务缓冲区有一个 1MB 的限制,如果我超过它,我会得到一个 TransactionTooLargeException。我想知道存储在 onSaveInstanceState 方法 中的包是否共享这 1MB?如果没有,我可以在那里保存多少信息?
我知道我可以使用 Retained Fragment 来保存复杂的数据,但我真的很想知道这个问题的答案。
谢谢。
【问题讨论】:
我想知道存储在 onSaveInstanceState 方法中的包是否共享这 1MB?。
是的。在所有同时进行的 IPC 事务中,您不能拥有超过 1MB 的数据。因此,为了整体设备性能,请保持您保存的实例状态Bundlesmall。例如,不要将Customer 对象放在Bundle 中;放置一个标识符,允许您检索Customer(尽可能从内存缓存中,或者从后备存储中)。
【讨论】: