Size: a a a

Android Developers

2021 November 11

V

Vladislav in Android Developers
Добрый вечер. У меня есть List листенеров и при выходе с экрана мне нужно их все удалить. В методе onPause() я в forEach это делаю, но почему-то нехватает времени на выполнение. Первые 2 элемента удаляются, а далее экран закрывается, а листенеры остаются включенными (листенеры для firestore, их нужно удалять, чтобы они просто не висели).
Почему это происходит и что можно сделать?
источник

Г

Глебушка in Android Developers
Как добавить библеотеку в проект
источник

A

Andrey in Android Developers
Покажи как очищаешь
источник

V

Vladislav in Android Developers
источник

A

Andrey in Android Developers
Попробуй вызвать функцию перед супером в он пауз
Если не поможет то тогда навернео через асинхрон делать
источник

V

Vladislav in Android Developers
не помогает. В корутине пытался запускать код, тоже нет
источник

V

Vladislav in Android Developers
lifecycleScope.launch {clearListeners()}
источник

A

Andrey in Android Developers
Так это в главном потоке будет
Внутри попробуй
async { fun }.await
И сделай ее suspend еще
источник

A

Andrey in Android Developers
Там может предложить вместо асинка с withContext я не помню какой там диспатчер будет
источник

z

zlo in Android Developers
Вообже странно. Может сделать только it.remove а потом уже вне цикла removeAll..  удалять элементы коллекции стоит через итератор
источник

V

Vladislav in Android Developers
просто it.remove() тоже самое. и просто listenerList.remove(it).
источник

V

Vladislav in Android Developers
Почему-то фор ич только 2 элемента обрабатывает (их там точно 5)
источник

A

Andrey in Android Developers
Это мутбельный лист?
источник

A

Andrey in Android Developers
clear ?
источник

z

zlo in Android Developers
Удалять в цикле надо пользовать итератор
источник

V

Vladislav in Android Developers
можно и так, но это не решит основную проблему
источник

A

Andrey in Android Developers
Да функция с ремувом не правильно написана
zlo написал тебе что не так
источник

A

Andrey in Android Developers
Пробовал уже через clear ?
источник

V

Vladislav in Android Developers
Да
источник

A

Andrey in Android Developers
А что по асинку?
источник