自onRetainNonConfigurationInstance
弃用以来,我越来越多地利用框架进行配置更改。由于我使用ViewPager来保存我的主要片段,因此无法使用setRetainInstance
,这限制了我的配置更改以使用onSaveInstanceState,就像标准的Activity或View一样。
它完美无缺地工作但我现在通过它传递了一个相当大的Serializable数据集,这让我想让社区输入是否是一个好主意。
tl; dr:onSaveInstanceState对你传递的内容有大小限制吗?
答案 0 :(得分:18)
说一些比“相当大”的东西会有所帮助。 :)
此数据通过IPC,IPC限制约为1MB。你想让你的编组尺寸明显小于那个; 100K可能是一个很好的最大值。而且你真的希望保持尽可能小(想想你放在那里并且不浪费空间),因为即使你自己的进程被杀死,这些数据也必须由系统保存在RAM中。
答案 1 :(得分:-1)
限制是内存限制,因为您没有OutOfMemory错误,所以应该没问题。
确保传递对象上没有任何视图或上下文,因为如果用户不断更改方向,这会导致内存使用迅速增长。