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

时间:2010-09-15 14:15:21

标签: android lifecycle

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

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

在这么小的例子中,如果populateFields()执行两次会不会造成任何伤害,但是在更大的App中,事情可能会有所不同......

谢谢和问候,
Markus N。

2 个答案:

答案 0 :(得分:1)

从Notepad3看,我会说你是对的。他们似乎没有理由在populateFields()onCreate()中拨打onResume()onResume就足够了。

答案 1 :(得分:-1)

我可以在两个地方看到你需要的地方,如果应用程序暂停,那么你需要它在onResume中,如果你的进程被杀死或者用户导航回活动那么你将在onCreate中需要它,特别是如果你正在做一些pre - 处理。

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

“活动的前景生命周期发生在对onResume()的调用之间,直到对onPause()的相应调用。在此期间,活动在所有其他活动的前面并与用户交互。可以经常在恢复和暂停状态之间进行 - 例如,当设备进入休眠状态,交付活动结果时,交付新意图时 - 这些方法中的代码应该相当轻量级。“

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