Size: a a a

Android Developers

2021 September 13

TT

Turalllb Turalll in Android Developers
Подскажите, че то туплю уже, если я из фрагмента передам лямбду во вьюмодель и фрагмент будет хранить эту лямбду, при уничтожении фрагмента будет утечка? как передать лямбду и избежать утечку? я ее использую как подписку на определенный результат   var isError: ((Boolean) -> Unit)? = null
источник

АК

Артём Кальянов... in Android Developers
как исправить
источник

k

kiber.io in Android Developers
Не поверишь - нажать повторно
источник

АК

Артём Кальянов... in Android Developers
где😁
источник

k

kiber.io in Android Developers
Я не буду тебя носиком тыкать в кнопку. Найти надпись на клавиатуре труда не составит. В крайнем случае загуглить
источник

АК

Артём Кальянов... in Android Developers
🙏спасибо
источник

k

kiber.io in Android Developers
Спойлер: она обычно в правой части клавиатуры
источник

PU

Pavel Urbanovich in Android Developers
Ребят вопрос не по андроиду а по телеграмму)) У меня две прилки телеги и две Симки на телефоне, на одном отправляет файлы на другом приложении нет пишет вложение не поддерживается, может знаете в чем проблема может быть?
источник

В

Валерий in Android Developers
не очень понял что куда, но почему бы не дернуть метод у вьюмодели?
источник

L

Leonid in Android Developers
У вью модели подписываются на LiveData. Велосипед уже изобрели 😏
источник

TT

Turalllb Turalll in Android Developers
наоборот вьюмодель должна оповестить вьюху, дернуть метод  нельзя тупо из-за общего дизайн стиля mvvm , как я понимаю
источник

В

Валерий in Android Developers
ну это в mvvm делается какой-нибудь лайфдатой насколько я знаю. Она лежит в вьюмоделе и пересозданный фрагмент на нее подписывается
источник

TT

Turalllb Turalll in Android Developers
liveData громоздкий, для одного единственного случая где он есть.  Во всех случаях используется flow , но из-за того что collect работает только в корутин скоупе и этом конкретном случае мне нужна вот такая подписка.
источник

VS

Vadim Sedov in Android Developers
Лямбда может захватывать объекты, например локальные переменные или сам фрагмент. Если фрагмент таким образом оставляет на себя ссылку внутри переживающей его вьюмодели, то чтобы не было утечек должен при разрушении занулить лямбду там, куда устанавливал. Всё как с подписками на события (это же те же делегаты, только кладутся в список).
источник

В

Валерий in Android Developers
тогда просто удаляй/задавай лямбду в onCreateView/onDestroyView
источник

TT

Turalllb Turalll in Android Developers
ну livedata это делает наверно вручную, она знает что фрагмент детачится и удаляет ссылку на него. наверно.
источник

L

Leonid in Android Developers
В каком месте он громоздкий? VM обновляет значение, подписчик получает. Привязано к жц, ничего не течет. Хорошо же!
источник

TT

Turalllb Turalll in Android Developers
в том что это целая библиотека, а мне в единственном месте в целом приложении нужно вернуть результата в таком вот виде, везде в других местах мне хватает flow
источник

A

Andrey in Android Developers
Есть lifecycleScope
источник

TT

Turalllb Turalll in Android Developers
да, мне вот тоже самое говорят, только руками. В Свифте есть возможность помечать лямбду, чтобы она брала только слабые ссылки, в джава и котлин такого почему то нет.  Наверно потому что сборщик мусора все равно сразу не сработает и оптимальнее сделать зануление руками.
источник