我有一个 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/