Reputation: 15552
I want to start an Activity (SECOND Activity) from another Activity (FIRST Activity) by calling startActivity(intent)
. Before I actually do it, I found people say that the lifecycle methods are called in the following order:
FIRST Activity onCreate
FIRST Activity onStart
FIRST Activity onResume
FIRST Activity onPause
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
Is the SECOND Activity onResume
always called before FIRST Acitivity onStop
? I thought
FIRST Activity onPause
FIRST Activity onStop
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
will be called, but it seems not.
Also, if I just switch between two activities,
FIRST Activity onPause
SECOND Activity onRestart
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
Are the methods always called in this order?
Upvotes: 40
Views: 41795
Reputation: 3868
According to the documentation, SECOND.onResume() is supposed to be called before FIRST.onStop() https://developer.android.com/guide/components/activities/activity-lifecycle#coordinating-activities (Coordinating activities section)
Upvotes: 45
Reputation: 40416
Suppose There are two activities FirstActivity
and SecondActivity
.
Then this order will always remain same everytime.
// when you start FirstActivity
(1) OnCreate() -> OnStart() -> OnResume() of
FirstActivity
will be called
when you start SecondActivity using startActivity(new Intent(FirstActivity.this, SecondActivity.class))
(2) OnPause() of FirstActivity will be called and then
(3) OnCreate() -> OnStart() -> OnResume() of SecondActivity will be Called then
(4) OnStop() of FirstActivity will be called
// when you press back button on SecondActivity
(5) OnPause() of SecondActivity will be called then
(6) OnRestart() -> OnStart() -> OnResume() of FirstActivity will be called then
(7) onStop() -> onDestroy() of SecondActivity will be called
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.
Upvotes: 62
Reputation: 475
First opens Activity: onCreate(),OnStart(),onResume()
User Clicks backButton(): onPause(),onStop(),onDestroy()
Navigating to another screen:
First Screen:: onPause(),onStop()
Second Screen: onCreate(),OnStart(),onResume()
Presses Backbutton in Activity2:
Second Screen: onPause(),onStop() ,onDestroy()
First Screen: onRestart(), onStart(), onResume()
User locks the device: onPause(),onStop()
Again Opens lock: onRestart(), onStart(), onResume()
Upvotes: -2