发布
社区首页 >问答首页 >Android -跨运行时更改保持大型数组列表的最佳方式

Android -跨运行时更改保持大型数组列表的最佳方式
EN

Stack Overflow用户
提问于 2014-05-27 01:51:57
回答 1查看 185关注 0票数 1

到目前为止,我只是将所有内容,包括非视图成员,放在onSaveInstanceState()中的包中,并在onRestoreInstanceState()中检索它。但我觉得以这种方式持久化非视图数据并不是正确的做法。

我的应用程序中有6个自定义非视图对象的数组列表,所有这些对象都可以变得相当大。每次在屏幕旋转时序列化/反序列化它们现在都会导致明显的延迟。我在想,有没有其他方法可以做到这一点,我错过了?

EN

回答 1

Stack Overflow用户

发布于 2014-05-27 02:12:26

对于配置更改(例如轮换),有另一种解决方案。您可以在onRetainNonConfigurationInstance()中返回对象(或者,也可以在setRetainInstance(true)中使用片段)。

onSaveInstanceState()不同的是,这个对象是而不是序列化的,而只是传递给“is is",所以没有性能影响。

onSaveInstanceState() / onCreate(Bundle savedInstanceState)机制主要用于在应用程序被系统终止(例如,由于内存不足)然后重新启动时恢复状态。在这种情况下,更高的延迟是合理的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23875432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档