2013-04-17 5 views
6

アクティビティを開くと、onCreate関数で要素を初期化できることがわかります。onCreateとonResume/onRestartのメンバー変数に関する説明

しかし、OnResumeとonRestart関数の動作は何ですか?これらの関数はいつ呼ばれますか?

具体的には:onCreate関数内のローカルメンバー変数を初期化すると、グローバルオブジェクトへの参照が返されます。今、例えば、コールによってユーザが中断されたときに、アクティビティを閉じることができる。後で、ユーザーが私の見解に戻ると、すでに初期化されている変数の状態はどうなりますか? onResume/onRestart関数のすべてを再初期化する必要がありますか?それでは、onCreateに対抗する機能的な違いは何でしょうか?

答えて

6
  • onCreate:初めてアクティビティが開始されました。ここであなたのものを初期化することができます。
  • onResume:別のアクティビティがフォアグラウンドになった後、ユーザーはアクティビティに戻ります。 ()
  • onRestart:ユーザーは、アクティビティが表示されなくなった後に移動します(onStop)。

Activity documentationで完全なライフサイクルを確認できます。あなたのアクティビティはonDestroyが呼び出されたときに終了するか、システムが破壊したとき(つまり優先度の高いアプリケーションがメモリを必要とするとき)にのみ失われます。

+0

したがって、onDestroyはアプリが強制終了されたことを意味し、onCreate次回アプリケーションを再起動する必要があるときに呼び出されます。 – Devolus

+1

必ずしも、 'onDestroy'は'戻る 'ボタンで以前のアクティビティに戻るときと同じように、 'Activity'が破壊されたことを意味しますが、まだ実行中です。しかし、はい、一度アプリケーションが殺される(または 'Activity'が破壊されると)、次回開くときに' onCreate'が再び呼び出されます。 – ssantos

+1

OnResumeは、OnCreateの直後にも呼び出されます(図:https://developer.android.com/guide/components/activities/activity-lifecycle.html#alc)。 –

1

現在のアクティビティからダイアログが開始されたとすると、メインウィンドウ(アクティビティ)はonPause状態になります。アクティビティがバックグラウンドになるようにすると(ホームボタンを押したと仮定します)、アクティビティはonPause Stateに移動します。

関連する問題