在我的应用程序中,我想在第一次需要时将一些数据加载到内存中,并将其保留在那里以防应用程序的另一部分想要使用它。可以从几个不同Activity
的 es 访问相同的数据,但到目前为止,并非所有用户都可以与之交互。因此,当不使用我的应用程序的相关部分时,我希望 Android 可以随意丢弃数据,并在需要时重新加载它们。请注意,我无法预测用户会做什么,所以我希望 Android 仅在一段时间未使用时才释放数据。这样做的好方法是什么?
我想创建一个class
仅静态使用的,将数据加载到其静态初始化块中。但是,我不确定 Dalvik 是否会丢弃以这种方式存储的任何静态数据。我已经阅读了一些关于类加载器的内容,但我不知道在加载我的类时使用了什么加载器以及它如何可能被丢弃。也许有人...?
我想出的另一种方法是使用弱引用来保留数据保存类的实例(显然是非静态的)但在这里我担心 GC 可能会在 noActivity
当前正在积极操作它时决定它是无用的,即使当内存在那一刻没有关系。(在这种情况下,我想保持加载数据。)
我的数据加载成本很高。如果可能,我希望仅在系统内存不足或应用程序退出时销毁它。