Событие OnDestroy экрана создания экрана вызывается дважды | НавхостAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Событие OnDestroy экрана создания экрана вызывается дважды | Навхост

Сообщение Anonymous »

Мне нужно обнаружить событие ON_DESTROY на экране создания сообщения. Для этого я использую приведенный ниже код; Он вызывается дважды, но есть ли способ обнаружить его более надежно? isObserverAdded помогает мне избежать добавления нескольких наблюдателей при переходе с текущего экрана на другой экран. LaunchedEffect вызывается дважды: когда экран впервые создается и когда я перехожу к другому экрану, затем нажимаю обратно, чтобы вернуться к предыдущему экрану. LaunchedEffect вызывается снова, поэтому я завернул isObserverAdded. Есть ли более надежный способ, например использование DisposableEffect?
// Remember the observer to avoid creating multiple instances
val observer = remember {
object : LifecycleEventObserver {
override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
if (event == Lifecycle.Event.ON_DESTROY) {
// Perform cleanup actions when screen is destroyed
Log.d(TAG,"Screen is destroyed")
}
}
}
}

// Remember a flag to check if the observer has been added
val isObserverAdded = remember { mutableStateOf(false) }

LaunchedEffect(key1 = lifecycleOwner.lifecycle) {

if(!isObserverAdded.value){
lifecycleOwner.lifecycle.addObserver(observer)
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... ce-navhost
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Событие OnDestroy экрана создания экрана вызывается дважды | Навхост
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Событие click() вызывается дважды в jQuery
    Anonymous » » в форуме Jquery
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • MouseAdapter#MouserEleadeed () не вызывается, когда событие сопротивления вызывается в быстрой последовательности
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Вызов onDestroy для активности после нажатия на уведомление о глубокой ссылке в Jetpack Compose
    Гость » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Гость
  • Функция onDestroy() не работает в службе переднего плана
    Anonymous » » в форуме Android
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»