代码之家  ›  专栏  ›  技术社区  ›  Jim

在活动生命周期中使用静态变量和生存期

  •  -2
  • Jim  · 技术社区  · 6 年前

    静态变量的寿命是多少?
    如果我有静电 ArrayList 在单例中初始化,我是否希望引用 null 只有当应用程序被用户杀死时?或者可能是 无效的 如果一些活动是在幕后被杀的?

    3 回复  |  直到 6 年前
        1
  •  1
  •   AIMIN PAN    6 年前

    如果活动被终止,静态变量将不会变为空。

        2
  •  1
  •   Ricardo    6 年前

    静态变量有可能在不终止应用程序的情况下变为空。您可以在@commonware post中阅读更多关于它的信息。

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

    引用:

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

        3
  •  0
  •   Shaon    6 年前

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