0

アクティビティライフサイクルコールバックはペアで実装する必要がありますか?

例えば

  • オーバーライドする場合は、オーバーライドonCreateする必要がありますonDestroyか?
  • オーバーライドする場合は、オーバーライドonStartする必要がありますonStopか?
  • オーバーライドする場合は、オーバーライドonResumeする必要がありますonPauseか?

onCreateつまり、実装したが、実装を省略した場合、アプリはクラッシュしonDestroyますか?

ペアで実装するのは良い習慣ですか、それともまったく問題ではありませんか(必要なものを実装するだけです)?

4

2 に答える 2

4

必要なものだけを実装してください。その他は、スーパークラス()から自動的に呼び出されますActivity。ライフサイクルのその時点で機能を追加する必要がある場合にのみ、それらをオーバーライドする必要があります。通常、で何かを処理している場合はonPause()、で逆演算も処理する可能性がありますonResume()。ただし、常にそうとは限りません。

編集:コードを見ずに編集していくと、とへの呼び出しを忘れたと思いsuper.onStart()ますsuper.onResume()。そうでない場合は、クラッシュの実装とスタックトレースを投稿してください。

于 2012-09-07T18:34:54.883 に答える
2

いいえ。ライフサイクルメソッドをペアでオーバーライドする必要はありません。

ただし、1つのメソッドで作成した変数を明示的に解放する必要がある場合は、一致するメソッドで解放するのが理にかなっています。


onCreateを実装したが、onDestroyの実装を省略した場合、アプリはクラッシュしますか?

Stack Overflowで繰り返し発生する質問は、SQLiteDatabasesを閉じることを扱っています。多くのプログラマーはでデータベースを開きますが、でデータベースonCreate()を閉じるのを忘れていますonDestory()

于 2012-09-07T18:37:54.100 に答える