было ликов? Раньше я делал в onCreateView() просто observe() и всё. Но LeakCanary мне говорит, что там у меня утекает layout фрагмента. Я так понял, что это из-за того, что обзёрвер привязан к жц активити, а не фрагмента, и когда вью фрагмента удаляется, обзёрвер всё ещё держит ссылку на неё.
Я переделал иначе, утечка пропала, но я не уверен что это самый нормальный подход. Выложил код на гист
Кто шарит, посмотрите пожалуйста: так норм, или можно сделать лучше?
Покажите, как вы обсервите ее. Если LeakCanary ругается, значит вы туда this передаете, а не viewLifecycleOwner.
Он активити передает
Зачем вы туда активити передаете? Где вы такое откопали?)
Да вот не знаю где откопал, это я код двухлетней давности решил поправить) Сейчас попробую viewLifecycleOwner, спасибо)
Активити туда вообще никогда передавать нельзя из фрагмента. Либо this(если нужно, чтобы обсервер жил в течение всего lifecycle фрагмента, независимо от его view), либо viewLifecycleOwner(если нужно, чтобы обсервер был привязан к lifecycle view фрагмента). Лучше использовать второй вариант, если не требуется иного.
Обсуждают сегодня