这可能是一个愚蠢的问题,但是什么时候是Android生命周期中最好的部分来实现每一步?我的游戏流程如下:
这会被视为良好做法吗?我对生命周期步骤感到有点困惑
答案 0 :(得分:1)
This可能有助于更多地了解Android应用的生命周期。以下是从该网站引用的:
如前一节所述,活动的生命周期有4个状态和3个 终生期。如果要监视和添加自己的代码 逻辑到一个活动,你可以使用以下7个基本回调 android.app.Activity类提供的方法:
onCreate() - 首次创建活动时调用。这是哪里 你应该做所有正常的静态设置:创建视图,绑定 数据到列表等。此方法还为您提供了一个Bundle 包含活动的先前冻结状态(如果有)。 onCreate()后面跟着onStart()。
onRestart() - 之后调用 您的活动已经停止,然后再次启动。 onRestart()后面跟着onStart()。
onStart() - 调用时 该活动变得对用户可见。 onStart()之后是 onResume(),如果活动到达前台,或onStop(),如果它 变得隐藏起来
onResume() - 在活动开始时调用 与用户交互。此时您的活动位于顶部 活动堆栈,用户输入到它。 onResume()是 总是后跟onPause()。
onPause() - 在系统调用时调用 即将开始恢复以前的活动。这通常用于 提交未保存的持久数据更改,停止动画等 可能消耗CPU等的事情。此方法的实现 必须非常快,因为直到下一个活动才会恢复 这个方法返回。 onPause()后跟onResume()如果是 activity返回前面,如果变为onStop() 对用户不可见。
onStop() - 当活动为no时调用 用户可见的时间更长,因为已恢复其他活动 并涵盖了这一个。这可能是因为一个新的 活动正在开始,现有的活动正在被带到前面 这一个,或者这个正在被摧毁。 onStop()之后是 onRestart(),如果此活动回来与之交互 用户或onDestroy(),如果此活动消失。
onDestroy() - 在您的活动被销毁之前收到的最后一个电话。这个可以 之所以发生,是因为活动正在结束(有人叫 在它上面完成(),或者因为系统正在暂时破坏它 节省空间的活动实例。你可以区分 这两个场景使用了isFinishing()方法。
答案 1 :(得分:0)
你是如何在onCreate之前预先加载数据的?在onCreate调用之前,没有Context对象可以使用app文件系统。以下是Activity lifecycle的文档,正如您所看到的,onCreate是第一种可以运行代码的方法。
我建议将数据加载到其他线程中,例如AsyncTask。
所以: