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)
我不明白为什么会发生这种情况,因为Activity Lifecycle声明该进程在再次调用onCreate()之前被终止.
不,不是的.
当您通过BACK按钮销毁最后一个活动时,肯定不会立即杀死该过程.即使您没有活动组件,Android也会保持流程,以防用户碰巧想要快速返回应用程序.稍后,当Android需要RAM时,它将终止该进程.
您不应该对静态数据成员是否存在进行任何假设.如果它们为null,则只是懒惰地初始化它们.
| 归档时间: |
|
| 查看次数: |
747 次 |
| 最近记录: |