【问题标题】:Using static variables and lifetime in activity lifecycle在活动生命周期中使用静态变量和生命周期
【发布时间】:2018-08-27 09:48:12
【问题描述】:

静态变量的寿命是多少?
如果我有一个在单例中初始化的静态ArrayList,我是否应该只在应用被用户杀死时才期望引用为null?或者如果某些活动在后台被杀死,可能是null?

【问题讨论】:

    标签: android android-activity android-lifecycle


    【解决方案1】:

    如果一个活动被杀死,静态变量不会变为空。

    【讨论】:

      【解决方案2】:

      有可能一个静态变量变为 null 而应用程序没有被杀死。您可以在@CommonsWare 帖子中阅读更多相关信息。

      is it possible for Android VM to garbage collect static variables without killing the whole Android application?

      引用:

      可能发生的情况是用户在您的应用程序中,通过 HOME(或通知、来电或最近任务列表等)离开应用程序,然后通过最近的任务返回到您的应用程序- 任务列表。如果您的进程在其不在前台时已终止,则当您的活动从最近任务列表启动时,您的静态数据成员将为空。由于用户返回的活动不一定是您的启动器活动,因此您的应用可能会表现得好像静态数据成员自发地变为空,即使这是因为您的进程已被终止并重新启动。

      【讨论】:

        【解决方案3】:

        静态变量保持活动状态,直到整个应用程序被杀死或销毁。如果应用处于暂停模式,静态变量仍然保持值

        【讨论】:

          猜你喜欢
          • 2011-09-12
          • 2021-01-03
          • 2012-08-24
          • 1970-01-01
          • 2013-07-27
          • 2011-04-18
          • 2014-05-18
          • 1970-01-01
          • 2011-07-15
          相关资源
          最近更新 更多