Невозможно доверять текущему состоянию жизненного цикла AAC
Краткое описание проблемы
getLifecycle().getCurrentState()
дал мне неправильное состояние.
Среда (интегрированная библиотека, ОС и т. Д.)
- compileSdkVersion: 27
- targetSdkVersion: 27
- поддержка библиотеки: 27.1.1
Ожидаемое поведение
- onCreate () -> СОЗДАН
- onStart () -> НАЧАЛО
- onResume () -> ВОЗОБНОВЛЕНО
- onPause() -> НАЧАЛО
- onStop () -> СОЗДАН
- onDestroy () -> УНИЧТОЖЕНО
Фактическое поведение
- onCreate: ИНИЦИАЛИЗИРОВАННЫЙ
- onStart: СОЗДАН
- на Резюме: НАЧИНАЕТСЯ
- onPause: НАЧАЛО
- onStop: СОЗДАН
- onDestroy: УНИЧТОЖЕНО
Подробно о выпуске
Я попытался с помощью приведенного ниже кода. Я искал в Google, но никто не думает об этом странно. Мне чего-то не хватает?
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.i(MainActivity::class.java.name, "onCreate : " + lifecycle.currentState.name)
}
override fun onStart() {
super.onStart()
Log.i(MainActivity::class.java.name, "onStart : " + lifecycle.currentState.name)
}
override fun onResume() {
super.onResume()
Log.i(MainActivity::class.java.name, "onResume : " + lifecycle.currentState.name)
}
override fun onPause() {
super.onPause()
Log.i(MainActivity::class.java.name, "onPause : " + lifecycle.currentState.name)
}
override fun onStop() {
super.onStop()
Log.i(MainActivity::class.java.name, "onStop : " + lifecycle.currentState.name)
}
override fun onDestroy() {
super.onDestroy()
Log.i(MainActivity::class.java.name, "onDestroy : " + lifecycle.currentState.name)
}
}
1 ответ
Ваше реальное поведение - это ожидаемое поведение, если вы посмотрите документацию: https://developer.android.com/topic/libraries/architecture/lifecycle
Думайте о состояниях как об узлах графа, а о событиях как о границах между этими узлами.