Подтвердить что ты не робот

Android. При переключении между двумя действиями вызывающий порядок методов жизненного цикла Activity

Я хочу запустить Activity (SECOND Activity) из другого действия (FIRST Activity), вызвав startActivity(intent). Прежде чем я это сделаю, я обнаружил, что люди говорят, что методы жизненного цикла вызывают в следующем порядке:

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

но это не так.

Кроме того, если я просто переключаюсь между двумя действиями,

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

Всегда ли вызываются методы в этом порядке?

4b9b3361

Ответ 2

Предположим, есть два действия FirstActivity и SecondActivity.

Тогда этот порядок всегда будет оставаться неизменным.

//когда вы запускаете FirstActivity

(1) OnCreate() → OnStart() → OnResume() of FirstActivity will be called

когда вы запускаете SecondActivity с помощью startActivity (новое намерение (FirstActivity.this, SecondActivity.class))

(2) OnPause() из FirstActivity будет вызываться, а затем

(3) OnCreate() → OnStart() → OnResume() of SecondActivity will be Called then

(4) OnStop() из FirstActivity будет называться

//когда вы нажимаете кнопку возврата на SecondActivity

(5) OnPause() из SecondActivity будет вызываться затем

(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.

Ответ 3

Сначала открывается активность: OnCreate(), OnStart(), onResume()

Пользователь нажимает backButton(): OnPause(), OnStop(), OnDestroy()

Переход на другой экран:

Первый экран:: onPause(), onStop()

Второй экран: onCreate(), OnStart(), onResume()

Нажимает кнопку в действии 2:

Второй экран: onPause(), onStop(), onDestroy()

Первый экран: onRestart(), onStart(), onResume()

Пользователь блокирует устройство: onPause(), onStop()

Снова открывает блокировку: onRestart(), onStart(), onResume()