java - 在 saveInstanceState 包中存储大数据结构

标签 java android optimization

我读到,如果我们想在 Activity 重新启动(旋转设备)时保存任何数据,我们必须将所有数据存储在 Bundle 的 saveInstanceState() 中。

但是,如果我们想将大数据结构保存在 bundle 中 - 它会卡住系统并增加内存使用量。

例如:
我有一个包含 50,000,000 个元素的 HashMap。读取是从SD卡读取的。因此,如果我将 HashMap 保存到 Bundle - 它会在很长一段时间内卡住设备的旋转。

有没有一种方法,我们可以保存数据而不存储在Bundle中? (例如,将指针保存到HashMap?)

最佳答案

你绝对不应该这样做。您应该手动处理方向更改或将此数据保留在您的 Activity 之外,例如在服务中。

关于java - 在 saveInstanceState 包中存储大数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14369245/

相关文章:

java - 如何使用流在 Java 8 中迭代 ArrayList 的 HashMap

android - android中的onSensorChanged在模拟器中不断被触发

android - 重新加载时刷新 fragment

android.media.AudioManager.setStreamVolume(int 流类型, int 索引, int 标志)

java - 优化 - 将 std 输入转换为 java 中的整数数组

java - 数组访问复杂度

java - 优化建议(HashMap)

java - 如何使用 Spring REST 和复杂的查询参数?

java - 在Java中解码SQL数据类型 "image"数据

java - JTextPane 明文