Size: a a a

Android Developers

2021 May 26

AS

Almas Shagdarov in Android Developers
Всем привет. Кто подскажет почему при навигации на другой фрагмент в текущим фрагмент leak flow происходит
private var searchJob: Job? = null
private fun search(query: String = "") {
       searchJob?.cancel()
       searchJob = viewLifecycleOwner.lifecycleScope.launchWhenStarted {
           viewModel.searchTaskList(query).collectLatest {
               adapter?.submitData(it)
           }
       }
   }
LeaksCanary: Fragment received onDestroy callback and FragmentManager is null
источник

AS

Almas Shagdarov in Android Developers
если использовать просто launch утечки в памяти нету
источник

ᴍ✓

ᴍʀ.ʀᴏʙᴏᴛ ✓... in Android Developers
Вроде нашел проблему, спасибо вам)
источник

В

Виктор in Android Developers
LeakCanary на устройстве показывает его как distinct leak с выводом уведомления?
источник

AS

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

В

Виктор in Android Developers
Попробуйте в onDestroyView фрагмента делать
searchJob?.cancel()
searchJob = null
источник

AS

Almas Shagdarov in Android Developers
я проверил через логи так как он привязан к viewLifecyleOwner он в onDestroyView автоматическии канселится и при он Create job = null
источник

AS

Almas Shagdarov in Android Developers
Проблема именно с функции launchWhenStarted  c launch все нормально
источник

В

Виктор in Android Developers
Да, в этом его и смысл, но может что-то не так идёт. Попробуйте проверить с теми двумя строками в onDestroyView
источник

AS

Almas Shagdarov in Android Developers
ок
источник

AS

Almas Shagdarov in Android Developers
@VictorWizard  не помогло
источник

DB

Dmytro Borysov in Android Developers
Ты указал же там 0.6 и 0.6. а как ты хотел? А если без позиций то там будет 0 и 1
источник

ES

Egor Sigolaev in Android Developers
Я указывал разные варианты, 0.6 и 0.4 в том числе.
источник

ES

Egor Sigolaev in Android Developers
Я же правильно понимаю, что сумма позиций должна быть 1(100%)?
источник

DB

Dmytro Borysov in Android Developers
Нет) это позиции в градиенте. Т.е 0 это начал, 0.5 середина 1 конец))
источник

ES

Egor Sigolaev in Android Developers
Ну какие мне значения поставить, чтобы цвета слились нормально?
источник

ES

Egor Sigolaev in Android Developers
0 и 1?
источник

DB

Dmytro Borysov in Android Developers
А что тут тебе не нравится?
источник

ES

Egor Sigolaev in Android Developers
Не тут, сейчас репостну нужную
источник

ES

Egor Sigolaev in Android Developers
вот
источник