16

重複の可能性:
onCreate() と onStart() の違い?
Android アクティビティ ライフ サイクル - これらすべてのメソッドは何のためのものですか?

OnCreate と OnStart の違いは何ですか?

私の理解では、OnCreate はアプリケーションが初めて開かれたときにのみ呼び出され、二度と呼び出されることはありません。これは本当ですか?定義をコピーして貼り付けるのではなく、自分の言葉で詳しく説明してもらえますか? ありがとうございました!

4

5 に答える 5

20

システムリソースが少ないなどの理由でデバイスがアクティビティを強制終了しない限り、アプリを終了して戻ると、onStartが呼び出されます。ただし、アプリケーションプロセスが強制終了された場合は、onCreateに戻ると、すべてのリソースが解放されているため、再度呼び出されます。

于 2012-09-17T23:53:09.483 に答える
15

ドキュメントは真剣に(冗談ではありませんが)、ライフサイクル(開始、動作、終了の方法)がどのように機能するかを説明する非常にきれいなイメージを持っています。Activity

ここに直接リンクされている画像は、基本的に次のように述べています。

  • onCreate()Activityが作成されたときに呼び出されます。つまり、起動または開始されます。(さらに、これは方向が変更されたときにトリガーされます。)プロセスが強制終了されたときに再度呼び出され、に戻ります。
  • onStart()onCreate()起動時にフォローと呼ばれます。onStop()さらに、アプリが後(および後)に戻ったときにも呼び出されます。これは、が表示されなくなっonRestart()た後に発生します(これは、ユーザーが画面上でアクティビティを表示できる時間帯ですが、表示されない場合もあります)。フォアグラウンドでユーザーと対話する")。Activity

この図は、1,000語未満で私よりもうまく説明しています。

于 2012-09-17T23:55:47.360 に答える
3

これはおそらく、反対の関数onDestroyとonStopから始めることで最もよく説明されます。

onDestroyは、アクティビティが破棄またはシャットダウンされたときに呼び出されます。次に開くと、onCreateが呼び出されます。

onStopは、アプリケーションが非表示になるたびに呼び出され、表示されなくなります。これは通常、古いアクティビティの上に新しいアクティビティが作成されることによって発生します。アクティビティが再び表示されると、onStartが呼び出されます。

このページの図は、アクティビティが存在する可能性のあるさまざまな状態を、関連する移行方法とともに説明するのに非常に役立ちます。http: //developer.android.com/training/basics/activity-lifecycle/starting.html

于 2012-09-17T23:54:43.123 に答える
1

ほとんど。onCreate は通常、アプリの起動時に呼び出されますが、アクティビティが他の理由で破棄または解放された場合にも呼び出されることがあります。基本的に、Activity のセットアップを 1 回だけ行いたい場合は、onCreate をオーバーライドする必要があります。ユーザーがアクティビティに移動するたびに何かをしたい場合は、onStart をオーバーライドする必要があります。アクティビティが表示/アクティブになるたびに何かをしたい場合は、onResume を使用します。アプリ全体に対して 1 回限りのセットアップを行いたい場合、つまり一度だけ実行する場合は、onCreate を使用する必要がありますが、そのセットアップが完了しているかどうかを確認し、完了していない場合にのみ実行してください。

このページの非常に便利な図を確認してください:アクティビティ リファレンス

于 2012-09-17T23:57:41.700 に答える
0

この Web サイトでは、Android のライフサイクルをしっかりとグラフィカルに表現しています: http://developer.android.com/training/basics/activity-lifecycle/starting.html

onStart()アプリケーションが表示されるたびに呼び出されます。これには、アプリケーションが最初に作成されたときと、終了せずに画面に戻ったときが含まれます。この 2 番目の動作は、ユーザーがアプリケーションを切り替え、アプリがバックグラウンドで実行されている場合に発生します。アプリケーションが見えなくonStop()なったときに が呼び出されますが、アプリケーションが完全に「破棄」されたときにonDestroy()が呼び出されます。呼び出しの後onDestroy()、ライフサイクルの開始時にアプリケーションを再度作成する必要があります。

onStart()アプリケーションがダイアログのようなもののために単にフォーカスを失った後に呼び出されないことに注意することが重要です。このような状況では、onPause()が呼び出されonResume()、フォーカスが回復したときに呼び出されます

于 2012-09-17T23:57:18.327 に答える