gpt4 book ai didi

安卓 : Static variable null on low memory

转载 作者:IT王子 更新时间:2023-10-28 23:29:18 26 4
gpt4 key购买 nike

我有一个包含一些静态变量的应用程序。这些变量存储在一个名为 DataContext 的独立类中。这些变量在应用程序启动时从原始文件初始化(在扩展 Application 的 MyApplication 的 onCreate() 中调用了一个名为 DataContext.initConstant() 的方法)。

(编辑:initConstant 方法使用 AsyncTask 从文件中加载此数据)。

当我的应用程序进入后台一段时间或当我的应用程序使用大量内存时,这些静态变量变为空。

  1. 如何预防?

  2. 如果不是,我应该如何处理我的静态变量?

    我有其他数据存储在静态变量中以供不同 Activity 使用,但我在 MyApplication 的 onLowMemory() 中清除它们或将它们传递给 null。

  3. 如果这些数据太大而无法在 Intent 中序列化、无法使用数据库(无论出于何种原因)并且无法存储,那么保持 Activity 之间可访问的一些数据的最佳方法是什么在文件中也通过序列化?

最佳答案

  1. 你不能。 Android 需要不时释放内存。想象一下,如果所有应用程序都有大量应该永久驻留的静态数据 - 您将如何将其放入内存中?这是一部手机。它没有虚拟内存。

  2. (和 3):任何旨在持久化的东西都需要通过 SharedPreferences、Sqlite 数据库或文件进行存储。

关于安卓 : Static variable null on low memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4797187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com