活动生命周期 - 声明序列的重要性

时间:2012-08-30 23:44:47

标签: android android-activity lifecycle

它是否会改变任何内容:

@Override
protected void onDestroy() {
    MydbHandler.close();
    super.onDestroy();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    MydbHandler.close();
}

2 个答案:

答案 0 :(得分:3)

一般建议是:

  • 对于具有明确“创建”语义的生命周期方法(例如onCreate()onStart()onResume()),首先链接到超类

  • 对于具有明确“破坏”语义的生命周期方法(例如,onPause()onStop()onDestroy()),在您的任何工作之后,最后链接到超类

  • 除非另有说明,否则希望无关紧要

因此,使用您的第一个代码段通常是更好的形式。话虽这么说,我不知道你的第二个片段有任何实际问题 - 事实上,我在Android开发的前几年使用了相同的方法。

答案 1 :(得分:2)

不,在这种情况下没有区别。

您可以查看Activity.onDestroy()的源代码(来自grepcode.com)。您将看到onDestroy()只是关闭所有托管对话框,托管Cursor并关闭SearchManager(如果打开)。