в текущим фрагмент 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
если использовать просто launch утечки в памяти нету
LeakCanary на устройстве показывает его как distinct leak с выводом уведомления?
Да
Попробуйте в onDestroyView фрагмента делать searchJob?.cancel() searchJob = null
я проверил через логи так как он привязан к viewLifecyleOwner он в onDestroyView автоматическии канселится и при он Create job = null
Проблема именно с функции launchWhenStarted c launch все нормально
Да, в этом его и смысл, но может что-то не так идёт. Попробуйте проверить с теми двумя строками в onDestroyView
Обсуждают сегодня