Android - 记事本教程 - 生命周期 - 一些工作做了两次?

Mar*_* N. 9 lifecycle android

根据"应用程序基础"一文的"组件生命周期"一节,当视图变为活动状态时,始终会调用onResume(),而与之前的状态无关.

在Notepad教程练习3中,我在NoteEdit.java中发现了一些令人困惑的事情:
在onCreate()和onResume()中调用了populateFields().
仅在onResume()中使用它是否足够(甚至更好)?

在这样一个小例子,它不会做任何伤害,如果populateFields()进行两次,但在一个更大的应用程序,事情可能会有所不同?

谢谢和问候,
马库斯N.

JPM*_*JPM -1

我可以看到您在两个地方都需要它,如果应用程序暂停,那么您将在 onResume 中需要它,如果您的进程被终止或用户导航回活动,那么您将在 onCreate 中需要它,特别是如果您正在进行一些预处理。

根据文档....对于 onResume(),他们建议将其用于轻量级调用,这与 onCreate() 不同:

“Activity 的前台生命周期发生在对 onResume() 的调用和对 onPause() 的相应调用之间。在此期间,该 Activity 位于所有其他 Activity 的前面并与用户交互。一个 Activity 经常会在已恢复的 Activity 之间切换。和暂停状态——例如,当设备进入睡眠状态时、当交付活动结果时、当交付新意图时——因此这些方法中的代码应该相当轻量。”

如果该方法已被 onCreate 命中,记事本应用程序可能需要声明一个变量,而不是在 onResume() 中重做。