Android不会破坏后退按钮上的数据

Ben*_*ijl 0 java android android-activity

在onCreate()方法中,我加载了一个级别列表.它存储在单例结构中(使用枚举).当我按下后退按钮并再次返回时,列表仍然存在,并再次添加所有级别.我不明白为什么会发生这种情况,因为Activity Lifecycle声明该进程在再次调用onCreate()之前被终止.

为什么会这样?

编辑,一些代码:

在单独的文件中:

public enum GameInformation {
   INSTANCE;
       public List<Level> levelSet;

       public void loadLevelSet(Context context) {
       ...
       }
}
Run Code Online (Sandbox Code Playgroud)

在主要活动中:

public void onCreate(Bundle savedInstanceState) {
    GameInformation.INSTANCE.loadLevelSet(this);
}
Run Code Online (Sandbox Code Playgroud)

Com*_*are 7

我不明白为什么会发生这种情况,因为Activity Lifecycle声明该进程在再次调用onCreate()之前被终止.

不,不是的.

当您通过BACK按钮销毁最后一个活动时,肯定不会立即杀死该过程.即使您没有活动组件,Android也会保持流程,以防用户碰巧想要快速返回应用程序.稍后,当Android需要RAM时,它将终止该进程.

您不应该对静态数据成员是否存在进行任何假设.如果它们为null,则只是懒惰地初始化它们.