2017-09-15 75 views
2

我讀了事務緩衝區的限制是1MB,如果我超過它,我會得到一個TransactionTooLargeException。我想知道是否存儲在onSaveInstanceState方法中的包是否共享此1MB?如果沒有,我可以在那裏保存多少信息?onSaveInstanceState(Bundle outState)保存多少信息?

我知道我可以使用保留片段來保存複雜的數據,但我真的很想知道這個問題的答案。

謝謝。

回答

4

我想知道存儲在onSaveInstanceState方法中的bundle是否共享這個1MB?

是的。在所有同時進行的IPC事務中,不能有超過1MB的數據。出於這個原因,並且爲了整體設備性能,請保留您保存的實例狀態Bundle小號。例如,不要在Bundle中放入一個Customer對象;放置一個標識符,允許您檢索Customer(從可能的內存緩存中,或從後備存儲庫中)。