1

それは書くために何かを変えますか:

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

または

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

2 に答える 2

3

一般的な推奨事項は次のとおりです。

  • 明確な「作成」セマンティクス(たとえば、、、)を持つライフサイクルメソッドの場合onCreate()onStart()最初onResume()にスーパークラスにチェーンします

  • 明確な「破壊」セマンティクス(たとえば、、、)を持つライフサイクルメソッドonPause()の場合onStop()onDestroy()作業の後に最後にスーパークラスにチェーンします

  • 他のすべてについては、他に文書化されていない限り、それはうまくいけば問題ではありません

したがって、通常は最初のスニペットを使用する方が適切です。そうは言っても、2番目のスニペットに実際の問題があることはわかりません。実際、Android開発の最初の数年間は同じアプローチを使用しました。

于 2012-08-30T23:56:32.000 に答える
2

いいえ、この場合は違いはありません。

Activity.onDestroy()のソースコードを(grepcode.comから)チェックアウトできます。onDestroy()は、すべての管理対象ダイアログ、管理対象カーソルを閉じ、SearchManagerを閉じる(開いている場合)だけであることがわかります。

于 2012-08-30T23:56:42.553 に答える