Почему мы используем базу данных sqlite в android.Я разрабатываю android приложение, где данные должны быть получены с сервера и сделать некоторые вычисления данных и показать их на UI.
Хорошо ли для меня получать данные в sqlite DB и обновлять UI на регулярном интервале из sqlite каждые 20 минут или будет хорошо отправить Http get запрос на сервер и обновить данные из ответа на UI.
Я хотел бы знать, какой вариант будет лучше и почему? Почему нужно задействовать sqlite DB? Данные соответствуют некоторой таблице 40X40, на которой должна быть выполнена тяжелая математическая обработка и затем отображена на UI (подобно приложению фондового рынка), и данные должны очищаться через каждые 12 часов. прошу совета С уважением, Рауль
Это хорошо, чтобы использовать базу данных в вашем случае.
Плюсы:
Минусы:
Как вы можете видеть мой список доказывает, что вы должны использовать базу данных в вашем случае. Может быть, я пристрастен, но, по крайней мере, я предоставить вам вещей, чтобы рассмотреть.
Это действительно дизайнерское решение, SQLite предлагает очень надежный способ организации и сохранения данных, другие варианты - запись в файл или сохранение в SharedPrefs, оба метода становятся намного сложнее в управлении, когда размер данных начинает расти, так как вы должны вручную вести список объектов и управлять их именами и т.д. и т.п. Данные таблицы 40 x 40 достаточно велики, чтобы оправдать использование SQLite, даже если вы удаляете и воссоздаете таблицу каждые 12 часов.
Вы можете рассмотреть возможность использования библиотеки ORM, чтобы упростить получение и сохранение данных из БД, ORMLite хорошо подходит и совместим с Android.
Если ваше приложение в значительной степени зависит от интернет-соединения, вам не нужно буферизировать информацию в базе данных. Однако если вы хотите использовать приложение в местах с плохим или отсутствующим сигналом, вам может понадобиться использовать кэшированные значения из базы данных sqlite. При медленном интернет-соединении ваше приложение может не реагировать на запросы, поэтому кэширование может быть хорошей идеей - но оно не обязательно должно быть в базе данных sqlite. Вы должны использовать базу данных sqlite для данных, которые часто требуются устройству и не имеют отношения к вашему серверному компоненту. Если данные обновляются часто, но только во время работы приложения, вы можете захотеть кэшировать их в памяти устройства. Я предполагаю, что ваше приложение не работает постоянно в течение 12 часов, а вызывается регулярно, чтобы проверить что-то.
12 часов - это долгое время, поэтому вместо того, чтобы оставлять данные блуждать в оперативной памяти, я бы предложил вам использовать базу данных. Потому что вы никогда не знаете, когда вам может понадобиться прочитать ее снова.
В противном случае, если вашей целью является только загрузка данных, их обработка и отображение в активности, то вам не нужно использовать базу данных, потому что если ваше приложение будет закрыто (из-за пользователя или низкой памяти), в любом случае ваше приложение будет загружать свежие данные с сервера... я прав?
> update the UI on regular interval from the sqlite in evry 20 minutes
Не ожидайте, что ваше приложение будет открыто в течение столь длительного срока.
Чтобы точно рекомендовать в вашей ситуации
Avoid DB
Fetch Data at app start or at appropriate time when app is opened
and save it in plain java objects.
Define Methods within it that perform operation in it.
Make map or list to save those POJO
Define Seprate Controller Classes within your project to update map of pojo at any
specific change to make fresh data available to UI.