web-dev-qa-db-ja.com

Android戻るボタンを押した後のアクティビティのライフサイクル

2つの活動のライフサイクルの間で少し混乱しています。

アクティビティAとアクティビティBがあるとします。

BはAから呼び出されます。つまりA ----> B

現在Bが画面に表示されているので、戻るボタンを押しました。ここで私は知りたい:-B(アクティブ)またはBのメモリがフラッシュ(非アクティブ)のためにまだ利用可能なメモリがあります。

29
AJ.

アクティビティBを起動するアクティビティAがあるとします。アクティビティBで[戻る]ボタンを押すと、アクティビティBがスタックからポップされ、Bはアクティビティスタックに含まれなくなります。

アクティビティをスタックにプッシュするたびに、onCreateが呼び出され、戻るボタンを押すと、onDestroyが呼び出されます。これは、アクティビティがフラッシュされることを意味します。

stack

詳細については、私のブログをご覧ください: http://upadhyayjiteshandroid.blogspot.in/2013/02/Android-lifecycle.html

activity lifecycle 詳細をご覧ください

http://developer.Android.com/guide/components/tasks-and-back-stack.html

http://developer.Android.com/training/basics/activity-lifecycle/starting.html

57
Jitesh Upadhyay

次のアクティビティコールバックメソッドは、戻るボタンを押した後に呼び出されます。

onPause()
onStop()
onDestroy()

アクティビティは破棄されます。

そして、再起動すると再作成されます。これらは、再起動時のコールバックメソッドです。

onCreate()
onStart()
onResume()
16
Annada

onDestroyメソッドは、バックプレスの後に呼び出されます。その後、アクティビティがアクティビティバックスタックからポップされます。

ドキュメントから:

アクティビティが一時停止または停止している場合、システムは、終了を要求するか、単にプロセスを強制終了することで、メモリからアクティビティを削除できます。ユーザーに再び表示されたら、完全に再起動し、以前の状態に復元する必要があります。

onDestroy()ドキュメントから

アクティビティが破棄される前に受け取る最後の呼び出し。これは、アクティビティが終了する(誰かがfinish()と呼ばれる)か、システムが一時的にアクティビティのこのインスタンスを破棄してスペースを節約するために発生する可能性がありますisFinishing()メソッドを使用すると、これら2つのシナリオを区別できます。

enter image description here

7
SMR

私は答えが受け入れられたことを知っていますが、それが私がそれを入れている誰かを助けるなら、まだです。

アイコンをクリックして初めてア​​プリを開くとき

onCreate()
onStart()
onResume()

ホームボタンが押されたとき

onPause()
onStop()

アプリのアイコンをクリックしてアプリを再び開くか、最近起動したとき

onRestart()
onStart()
onResume()

アプリを開いてから戻るボタンを押したとき

onPause()
onStop()
onDestroy()
4
DAS

アクティビティBは破棄され、メモリに残りません。

詳細については、 Androidの公式ドキュメント にアクセスして、アクティビティのライフサイクル図をご覧ください。

戻るキーを押すと、アクティビティのonDestroy()メソッドが呼び出され、アクティビティがメモリからフラッシュされます。その後、startActivity()メソッドを呼び出してonCreate()メソッドを呼び出すことにより、アクティビティを再起動する必要があります。

2
Rakesh

アクティビティのライフサイクルについては、次のリンクを参照することをお勧めします

http://stackoverflow.com/a/8516056/3110609

アクティビティの起動モードのリンクをたどります。

www.intridea.com/blog/2011/6/16/Android-understanding-activity-launchmode
0
Harshal Benake

戻るボタンを押すと、アクティビティBは破棄されます。 Android Stack(スタックの説明) のようにアクティビティを管理します。アクティビティを開始するたびに、アクティビティスタックにプッシュされます。アクティビティBを呼び出すと、アクティビティBがアクティビティBの上になり、戻るボタンを押すと、アクティビティスタックにポップが表示されます。したがって、コンセプトでは、アクティビティBはなくなります。 、アクティビティを一時停止するため、携帯電話のメモリを少し消費します。

ここ は、Androidアクティビティを管理する方法の適切な説明です。

0
steven0529