Pull to refresh

Comments 11

после чего сама выбросит бутылку. Спасибо, GC!

Да, только выбросить может сразу, а может через пару месяцев, когда бутылок накопится over 9000.
Обычно в этом нет большой проблемы — бутылка не мешается под ногами, а лежит себе в мусорной корзине. Кроме того, new generation обычно собирается довольно оперативно и без stop the world.
Ваша правда. Но при неправильной настройке сборщика можно поиметь много проблем. Например при неоптимальной настройке размеров под Young Generation. Если слишком много выделить места из хипа под молодое поколение, то реально у вас «весь дом будет завален бутылками», до определенного момента — момента переполнения этого места (в этот момент должен будет сработать GC по молодому поколению).
Абсолютно согласен, хотя стратегия заполнения хипа молодым/старым поколением может различаться.
Но в целом, необходимость специфических настроек GC — не частая задача, обычно сводящаяся к выбору самого GC.
Более того — на мобильных платформах такой задачи нет вовсе :)
В серверной джаве это достаточно частая задача.
Но в серверной яве нет задачи менять скины приложения на лету (:
В коде можно использовать setTag/getTag с параметром id.

В качестве холдеров лучше не стоит использовать View.setTag (int key, Object tag) , это приводит к утечке памяти (https://code.google.com/p/android/issues/detail?id=18273). Такие тэги хранятся в статической WeakHashMap в классе View, поэтому если сохранить child view в тэге его предка, то такая запись никогда не удалится из мапы. Пофиксили баг только в ICS.
Отличное замечание!
По той же ссылке указано несколько work-around'ов.
В нашем коде мы не сталкивались с этой проблемой, т.к. тэги тем не используются в корневых элементах адаптера, поэтому мы смело используем View.setTag(Object tag). Но спасибо, учту на будущее.
У меня когда-то была задача подгружать темы динамически из интернетов, но при этом не использовать apk, чтобы пользователю не нужно было ничего устанавливать. Все вроде ок, кроме того, что подгрузить 9-patch было невозможно из-за того, что aapt готовит его заранее еще при сборке.

Решил проблему портированием 9-patch парсера из aapt в native библиотеку. Вот это было интересно :)
Мы сейчас тоже работаем в этом направлении, но честно говоря не вижу проблемы предварительно обрабатывать 9-patch (до выкладки в интернеты).
Проблема была в том, что клиент хотел сам готовить темы (сам — в смысле на его стороне). А писать специальный тул и обучать его сотрудников им пользоваться показалось еще более трудоемкое занятие.
Sign up to leave a comment.