【问题标题】:Android listarray global variableAndroid listarray 全局变量
【发布时间】:2012-12-15 20:58:41
【问题描述】:

我有一个可以启动\停止我的服务的活动。在服务中有alarmManager,每x分钟启动我的BroadcastReceiver。 我需要在每个 BroadcastReceiver 的 ArrayList 中保留一些数据,并在下一个 BroadcastReceiver 中再次使用(添加/删除)它。我尝试在我的服务中创建静态 ArrayList,但是当我停止(重新启动)它时 - 我丢失了我的数据。当我再次开始我的主要活动时 - 由于生命周期,我丢失了数据......

所以我需要可以在 BroadcastReceiver 中访问的全局数组列表。从 onBoot 事件到手机死机,这个数组应该一直可用;)

有什么想法吗?

【问题讨论】:

    标签: java android arrays global-variables lifecycle


    【解决方案1】:

    您可以使用数据库存储您的数据,在开始时读取并在停止时写入。 Andorid 教程介绍了如何处理数据库。

    【讨论】:

      【解决方案2】:

      您必须在服务之外创建静态数组,例如在新类中。

      【讨论】:

      • 服务类中的静态变量与任何其他类中的静态变量完全相同。他说数据丢失了,这意味着一个新的虚拟机已经启动了
      【解决方案3】:

      确保在您停止时 - 您不会终止虚拟机 - 只有 finish() 活动。
      如果您需要持久性,请使用共享首选项(最简单)或数据库。

      【讨论】:

        猜你喜欢
        • 2017-08-19
        • 1970-01-01
        • 2015-06-12
        • 2019-07-24
        • 2017-11-08
        • 1970-01-01
        • 1970-01-01
        • 2014-02-15
        • 2011-09-30
        相关资源
        最近更新 更多