Я делал свои первые шаги, когда андроид писал менеджеру денег. Он хранит данные в базе данных SQLite, и мой подход был в основном процедурным, в то время как я его создавал.
Это означает: когда я создаю диаграмму или сводку, она выглядит так:
Ну, это работает, но сейчас я изучаю больше, и я хотел бы перестроить свое приложение. Я не полностью осведомлен о ограничениях памяти на мобильных устройствах, поэтому я создаю этот поток.
Я придумал две идеи. Скажите, пожалуйста, какой из них, по вашему мнению, лучше (или как-то поправьте мой подход, если он полностью ошибается).
Давайте рассмотрим пример создания диаграммы или списка, как раньше. Теперь я сделаю так:
Это потребует большего количества кода, чем мой процедурный подход, но использование его должно быть намного проще, и код будет иметь более "профессиональный" внешний вид (исправьте меня, если я ошибаюсь).
Однако я получил эту дилемму. Скажем, я создаю набор объектов на основе данных из таблицы "затраты". Я использую их для представления диаграммы или списка в одном из моих действий. После того, как я закрыл свою деятельность, я больше не нуждаюсь в них. Что я должен сделать, чтобы позволить сборщику мусора отбросить их. Что-нибудь особенное? (да, я новичок в сборщике мусора).
Существует также второй подход oop, но я знаю, что для этого потребуется много памяти, и я не уверен, что это хорошая идея. Итак, вернемся к примеру снова:
Звучит глупо, да? Я не уверен, когда сборщик мусора будет располагать все эти объекты, и если это хорошая идея спамить память с этим объемом данных за один раз.
Спасибо за любые комментарии по этому поводу.
Оба решения работают, но первый лучше, потому что объекты помечены для GC, как только они выходят из сферы действия, что происходит намного раньше, чем если они сохраняются для последующего использования. Когда объекты GCed, память, которую они занимают, становится доступной.