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