Android: onResume () - PullRequest
       36

Android: onResume ()

0 голосов
/ 28 января 2020

Можно ли как-то различать: -

  1. Активность, вызываемая при переходе приложения из фона на передний план
  2. Активность, вызванная из другой активности.

имеет ли android какой-либо способ отличаться или мы должны реализовать наши собственные логики c (например, отслеживание последней активной активности)?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Обратный вызов жизненного цикла onCreated будет вызываться, только если действие создано с нуля (например, запущено из другого действия), и onResume будет вызываться в обоих случаях, если оно было создано с нуля и если оно было возобновлено из фона.

enter image description here

Вы можете добавить небольшой хак, если хотите знать, что ваша деятельность была начата с другой деятельности. Просто добавьте немного в ваше намерение, как это:

В действии, которое начнет новое действие:

val intent = Intent(this, PSMainActivity::class.java)
intent.putExtra("CREATED_FROM_ANOTHER_ACTIVITY", true)
startActivity(intent)

В начальном занятии:

 val intentt = getIntent()
 var wasCreatedFromAnotherActivity = 
     intentt.getBooleanExtra("CREATED_FROM_ANOTHER_ACTIVITY",false)
0 голосов
/ 28 января 2020

Вы ошибаетесь. Всякий раз, когда создается действие, onResume вызывается сразу после onStart. Всякий раз, когда ваша активность возвращается, вызывается стек onPause. Опять же, если ваша деятельность возвращается на передний план, то вызывается onResume. Так что это не так, onResume вызывается раньше onPause. Всякий раз, когда активность возвращается из состояния onPause, вызывается onResume вместо onStart или onCreate. Это происходит так, что Android не нужно создавать экземпляр Activity снова и снова, хотя эти экземпляры не уничтожаются должным образом. Это также достаточно эффективно для памяти.

...