java - 在应用程序运行时保留 HashMap 数据 - Android

标签 java android hashmap data-storage

我有一个 HashMap,其中包含与特定 Activity 相关的数据。 数据应该从服务器获取并且非常大,所以我不想在某个 Activity 中获取它。相反,我将主 Activity 中的所有数据提取到自定义类中,然后创建一个 HashMap 来保存所有对象并将其保存在我的应用程序类中。

当用户进入其他 Activity 时,通过调用我之前从 Application 类创建的 HashMap,数据已准备就绪,无需等待。

一切工作正常,除了有时应用程序长时间处于后台时,存储在 HashMap 中的数据正在由 Android 初始化。

我读到,在 Application 类中存储对象是不好的,我无法避免此错误,所以我的问题是执行该过程的正确方法是什么? 我需要一个解决方案,只要存在我的应用程序实例,它就能使我的 HashMap 对象保持 Activity 状态。

最佳答案

I have a HashMap which contains data that is relevant to a specific Activity.

如果是这种情况,您为什么不想将 HashMap 保留为 Activity 中的实例变量?在 Application 对象中存储特定 Activity 的数据并不是良好的面向对象设计。

如果您需要在Activity销毁和创建时保留HashMap中的数据,可以在onSaveInstanceState()中保存.

关于java - 在应用程序运行时保留 HashMap 数据 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22513629/

相关文章:

android - 更改自定义样式资源中的文本样式(粗体)以折叠工具栏布局

java - 设备语言对应用程序语言的影响

java - 检查 HashMap 键是否存在

java - Google AppEngine session 示例

java - 一个 Java 库,具有用于查找一组整数的最小公倍数的实用程序

java - ConcurrentHashmap 在我的实现中是否需要同步?

android - compileSdkVersion、minSdkVersion、targetSdkVersion 应该怎么设置才能支持Marshmallow to Pie?

java - 安装后按钮不会显示在应用程序中

c++ - 专门化 hashmap 模板

java - java如何实现hashmap链碰撞解决