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

时间:2018-08-27 09:48:13

标签: android android-activity android-lifecycle

静态变量的寿命是多少?
如果我在单例中初始化了静态ArrayList,那么仅当应用程序被用户杀死时,我才应该期望引用为null吗?或者,如果某些活动在后台被杀死,可能是null

3 个答案:

答案 0 :(得分:1)

如果活动被杀死,

静态变量将不会为空。

答案 1 :(得分:1)

静态变量有可能在不终止应用程序的情况下变为null。您可以在@CommonsWare帖子中阅读有关此内容的更多信息。

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

报价:

  

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

答案 2 :(得分:0)

静态变量将保持活动状态,直到整个应用程序被杀死或破坏为止。如果应用处于暂停模式,则静态变量仍保留该值