web-dev-qa-db-ja.com

Android-2つのアクティビティ間の切り替え中に、アクティビティのライフサイクルメソッドの呼び出し順序

startActivity(intent)を呼び出して、別のアクティビティ(FIRSTアクティビティ)からアクティビティ(SECONDアクティビティ)を開始したい。実際に実行する前に、ライフサイクルメソッドは次の順序で呼び出されると言う人がいます。

FIRST Activity onCreate
FIRST Activity onStart
FIRST Activity onResume
FIRST Activity onPause
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop

SECOND Activity onResumeは常にFIRST Acitivity onStopの前に呼び出されますか?思った

FIRST Activity onPause
FIRST Activity onStop
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume

呼び出されますが、そうではないようです。

また、2つのアクティビティを切り替えると、

FIRST Activity onPause
SECOND Activity onRestart
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop

メソッドは常にこの順序で呼び出されますか?

30
Naetmul

ドキュメントによると、SECOND.onResume()はFIRST.onStop()の前に呼び出されることになっています https://developer.Android.com/guide/components/activities/activity-lifecycle.html#soafa =(アクティビティの調整セクション)

40
Y2i

FirstActivitySecondActivityの2つのアクティビティがあるとします。

その後、この順序は常に同じままになります。

// FirstActivityを開始するとき

(1)OnCreate()-> OnStart()-> On_Resume()of FirstActivityが呼び出されます

startActivity(new Intent(FirstActivity.this、SecondActivity.class))を使用してSecondActivityを起動するとき

(2)OnPause()of FirstActivityが呼び出され、その後

(3)OnCreate()-> OnStart()-> On-Resume()of SecondActivityが呼び出されます

(4)FirstActivityのOnStop()が呼び出されます

// SecondActivityで戻るボタンを押すと

(5)OnPause()of SecondActivityが呼び出されます

(6)OnRestart()-> OnStart()-> On-Resume()of FirstActivityが呼び出されます

(7)onStop()-> on-Destroy()of SecondActivityが呼び出されます

 Note: 

 (1) OnPause() will be called first when you navigate to any other activity.

 (2) OnStop() will be called when activity is no longer Visible on screen.
15