во фрагментах. Не верит. Говорит, что документация Гугла неправильная и всё очистится само собой.
Есть какой-то простой пример, чтобы показать memory leak?
https://proandroiddev.com/avoiding-memory-leaks-when-using-data-binding-and-view-binding-3b91d571c150
О времена, о нравы
Там не будет memory leak
Посмотри ради интереса батернайф как делали 6 лет назад в фрагментах.
А что там будет? А зачем гугл велит занулять?
Как только фрагмент удалиться, все данные по идеи должны тоже удалиться. Но можно проверить LeakCanary
Угу. А Гугл пишет мануалы, потому что не в курсе, что всё просто.
А это что тогда?
Т.е ты хочешь сказать, что фрагмент останется в памяти или binding ?
Просто подумай про случай пересоздания фрагмента при смерти процесса или поворота экрана
Останется вью, которое в binding, со всем своим добром.
И чем это грозит? От пару пересозданий серьезного не че не вылезет
Пару раз сломать ногу : ничего страшного. Заживёт
Но все данные удаляться после уничтожения фрагмента.
Формулировка абсолютно оторвана от айти. Мы так не говорим в андроид. Какие данные какое удаление
Ты злишься потому что я раскритиковал твоё видел 😏.
Ну то есть это именно ты назвал один случай («удалится», дестрой), при котором утечки нет. Полностью игнорируя другой случай, дестройВью и уход в бэкстек, когда вью и утечёт.
Да, утечёт. Но по идеи, обратно когда произойдёт onDestroy, эти объекты будут очищены GC
А когда пользователь перезагрузит телефон или снесёт приложение, утечки тоже ликвидируются, прикинь. Значит ли это, что их нет?
Они есть, но их как бы нет 😏
А какие утечки есть, но как бы есть? Ты вообще признаёшь такой класс проблем?
Да, у меня две в проекте старом есть, ни как не доберусь до них, чтобы исправить
Как ты различаешь, какие влияют на работу приложения, а какие — нет? На глазок?)
Если приложение крашнулось. То повлияло 😏. А если серьезно, то я все их исправляю в нормальных проектах, если нахожу.
А я не занимаюсь отрицанием реальности. Влияют все.
А если в день написания утечки не крашнулось, а через месяц, после подключения загрузки картинок и добавления глубокой навигации — крашнулось?
Ты написал, как будто кто то специально пишет так, чтобы произошла утечка.
А разница? Результат один — крэш. Пользователю пох, некомпетентность это или саботаж.
Я до релиза все косяки исправляю
Молодец. А ты, как я вижу, больше не отрицаешь, что утечка — это косяк.
Меня немного не так поняли наверное. Да, при повороте экрана, если в onDestroyView не занулять binding, то произойдёт утечка памяти, но как только будет вызван onDestroy и GC пройдётся по кучи, эта утечка должна быть устранена. В реальных проектах пользователи переходят всего на пару экранов. Думаю мало кто будет крутить один экран очень много раз, поэтому с этим практически не будет проблем. Но с другой сторону, чтобы занулить binding много кода писать не нужно. Вот о чем я хотел сказать. И по факту, если так приделаться к терминам досконально , то утечки вообще может и не быть.
Как правило, специально так не пишут. Однако одна команда напишет вычисления, используя метрическую систему, а другая - имперскую. Обе команды абсолютно правы. А в итоге твой космический аппарат со всей дури ибанецца об Марс.
В реальных проектах пользователи навигируют туда-сюда много раз.
Леонид, как только сработает onDestroy, утечка будет исправлена после прохода GC
Опять ты со своими поворотами экрана, которые вообще ни при чём. И с утечкой, которой, о чудо, при определённых сценариях может не быть (см. календарный метод контрацепции).
К этому времени от космолета останутся одни запчасти.
Ну рано или поздно onDestroy сработает, а то что лишний объект повесит в памяти чуть больше.. не че страшно
А можно тут поподробнее, почему много поворотов должно убить память? Насколько я знаю, поворот экрана полностью пересоздаёт всю Activity с её Fragment'ами. И под пересозданием я имею ввиду именно onDestroy/onCreate
Только потому что автор не знает, о чём говорит.
Где ты прочитал, что много поворотов, что то должно убить
Тогда что ты имел в виду? "при повороте экрана, если в onDestroyView не занулять binding, то произойдёт утечка памяти"
Ну подумаешь, немного ошибся.
Немного ошибся, чуть-чуть обвинил одного из собеседников в злоупотреблении растворителями, развёл незначительный срачик, и, сославшись на время суток, слегка ретировался.
От души, Миша. Моего здоровья уже не хватает на такое
Обсуждают сегодня