这可能是一个有点愚蠢的问题,但是在 Android 生命周期中,何时是实现每个步骤的最佳部分?我的游戏流程如下:
- onCreate 之前:存储在 JSON 文件中的数据在游戏开始时被解析为字符串列表
- onCreate:生成基本 UI
- onStart/onResume:游戏开始:从列表中随机选择项目,用户选择相应项目继续
- 如果用户是正确的,则从列表中选择另一个项目。出现 10 次
- 10个项目后,游戏结束并向用户显示分数
这会被认为是好的做法吗?我对生命周期步骤有点困惑
这可能是一个有点愚蠢的问题,但是在 Android 生命周期中,何时是实现每个步骤的最佳部分?我的游戏流程如下:
这会被认为是好的做法吗?我对生命周期步骤有点困惑
这可能有助于更多地了解 Android 应用程序的生命周期。以下内容来自该网站:
如上一节所述,一个活动的生命周期有 4 个状态和 3 个生命周期。如果你想监控和添加自己的代码逻辑到一个activity,你可以使用android.app.Activity类提供的以下7个基本回调方法:
onCreate() - 首次创建活动时调用。这是您应该进行所有常规静态设置的地方:创建视图、将数据绑定到列表等。此方法还为您提供了一个包含活动先前冻结状态的 Bundle(如果有的话)。onCreate() 后面总是跟着 onStart()。
onRestart() - 在您的活动停止之后和重新开始之前调用。onRestart() 后面总是跟着 onStart()。
onStart() - 当活动对用户可见时调用。onStart() 之后是 onResume() 如果活动进入前台,或者 onStop() 如果它被隐藏。
onResume() - 当活动开始与用户交互时调用。此时,您的活动位于活动堆栈的顶部,用户输入将转到它。onResume() 后面总是跟着 onPause()。
onPause() - 当系统即将开始恢复之前的活动时调用。这通常用于提交对持久数据的未保存更改、停止动画和其他可能消耗 CPU 的事情等。此方法的实现必须非常快速,因为在此方法返回之前不会恢复下一个活动。onPause() 后跟 onResume() 如果活动返回到前面,或者 onStop() 如果它对用户不可见。
onStop() - 当活动不再对用户可见时调用,因为另一个活动已经恢复并覆盖了这个活动。这可能是因为正在启动一项新活动,正在将现有活动带到此活动之前,或者此活动正在被销毁。onStop() 后跟 onRestart() 如果此活动返回与用户交互,或 onDestroy() 如果此活动即将消失。
onDestroy() - 在你的活动被销毁之前你收到的最后一个调用。这可能是因为 Activity 正在完成(有人在其上调用了 finish(),或者因为系统正在临时销毁该 Activity 实例以节省空间。您可以使用 isFinishing() 方法区分这两种情况。
您如何在 onCreate 之前预加载数据?在调用 onCreate 之前,您没有 Context 对象可以使用应用程序文件系统。这是Activity 生命周期的文档,如您所见, onCreate 是您可以运行代码的第一个方法。
我建议将数据加载放在其他线程中,例如 AsyncTask。
所以: