2017-09-15 39 views
2

我读了事务缓冲区的限制是1MB,如果我超过它,我会得到一个TransactionTooLargeException。我想知道是否存储在onSaveInstanceState方法中的包是否共享此1MB?如果没有,我可以在那里保存多少信息?onSaveInstanceState(Bundle outState)保存多少信息?

我知道我可以使用保留片段来保存复杂的数据,但我真的很想知道这个问题的答案。

谢谢。

回答

4

我想知道存储在onSaveInstanceState方法中的bundle是否共享这个1MB?

是的。在所有同时进行的IPC事务中,不能有超过1MB的数据。出于这个原因,并且为了整体设备性能,请保留您保存的实例状态Bundle小号。例如,不要在Bundle中放入一个Customer对象;放置一个标识符,允许您检索Customer(从可能的内存缓存中,或从后备存储库中)。