2つの活動のライフサイクルの間で少し混乱しています。
アクティビティAとアクティビティBがあるとします。
BはAから呼び出されます。つまりA ----> B
。
現在B
が画面に表示されているので、戻るボタンを押しました。ここで私は知りたい:-B
(アクティブ)またはB
のメモリがフラッシュ(非アクティブ)のためにまだ利用可能なメモリがあります。
アクティビティBを起動するアクティビティAがあるとします。アクティビティBで[戻る]ボタンを押すと、アクティビティBがスタックからポップされ、Bはアクティビティスタックに含まれなくなります。
アクティビティをスタックにプッシュするたびに、onCreate
が呼び出され、戻るボタンを押すと、onDestroy
が呼び出されます。これは、アクティビティがフラッシュされることを意味します。
詳細については、私のブログをご覧ください: http://upadhyayjiteshandroid.blogspot.in/2013/02/Android-lifecycle.html
詳細をご覧ください
http://developer.Android.com/guide/components/tasks-and-back-stack.html
http://developer.Android.com/training/basics/activity-lifecycle/starting.html
次のアクティビティコールバックメソッドは、戻るボタンを押した後に呼び出されます。
onPause()
onStop()
onDestroy()
アクティビティは破棄されます。
そして、再起動すると再作成されます。これらは、再起動時のコールバックメソッドです。
onCreate()
onStart()
onResume()
onDestroy
メソッドは、バックプレスの後に呼び出されます。その後、アクティビティがアクティビティバックスタックからポップされます。
アクティビティが一時停止または停止している場合、システムは、終了を要求するか、単にプロセスを強制終了することで、メモリからアクティビティを削除できます。ユーザーに再び表示されたら、完全に再起動し、以前の状態に復元する必要があります。
onDestroy()
ドキュメントから :
アクティビティが破棄される前に受け取る最後の呼び出し。これは、アクティビティが終了する(誰かが
finish()
と呼ばれる)か、システムが一時的にアクティビティのこのインスタンスを破棄してスペースを節約するために発生する可能性があります。isFinishing()
メソッドを使用すると、これら2つのシナリオを区別できます。
私は答えが受け入れられたことを知っていますが、それが私がそれを入れている誰かを助けるなら、まだです。
アイコンをクリックして初めてアプリを開くとき
onCreate()
onStart()
onResume()
ホームボタンが押されたとき
onPause()
onStop()
アプリのアイコンをクリックしてアプリを再び開くか、最近起動したとき
onRestart()
onStart()
onResume()
アプリを開いてから戻るボタンを押したとき
onPause()
onStop()
onDestroy()
アクティビティBは破棄され、メモリに残りません。
詳細については、 Androidの公式ドキュメント にアクセスして、アクティビティのライフサイクル図をご覧ください。
戻るキーを押すと、アクティビティのonDestroy()メソッドが呼び出され、アクティビティがメモリからフラッシュされます。その後、startActivity()メソッドを呼び出してonCreate()メソッドを呼び出すことにより、アクティビティを再起動する必要があります。
アクティビティのライフサイクルについては、次のリンクを参照することをお勧めします
http://stackoverflow.com/a/8516056/3110609
アクティビティの起動モードのリンクをたどります。
www.intridea.com/blog/2011/6/16/Android-understanding-activity-launchmode
戻るボタンを押すと、アクティビティBは破棄されます。 Android Stack(スタックの説明) のようにアクティビティを管理します。アクティビティを開始するたびに、アクティビティスタックにプッシュされます。アクティビティBを呼び出すと、アクティビティBがアクティビティBの上になり、戻るボタンを押すと、アクティビティスタックにポップが表示されます。したがって、コンセプトでは、アクティビティBはなくなります。 、アクティビティを一時停止するため、携帯電話のメモリを少し消費します。
ここ は、Androidアクティビティを管理する方法の適切な説明です。