Страницы

Поиск по вопросам

четверг, 29 ноября 2018 г.

Как организовано кэширование в клиентах соцсетей?

Всем добрый вечер! В процессе написания приложения возникла необходимость кэширования определенной информации на устройстве, но для меня пока не понятен алгоритм такого кэширования! То есть, например в приложении клиент ВК на андроид в режиме оффлайн я могу просмотреть довольно большое кол-во заранее просмотренной информации, например переписку, собственный профиль, некоторые фото, список друзей и т.д.. Я пытаюсь написать подобный клиент и меня интересует как это лучше организовать, может существуют готовые рекомендации или набор определенных правил, алгоритмов. Буду рад вашей помощи! Заранее всем большое спасибо!


Ответ

По науке делается так: Пишем сервис/фоновый поток который берет из сервера по расписанию необходимые данные и складывает их в SQLite базу. Этот же поток/сервис должен следить за размером кэша, авторизацией и проч. вещами. Наружу он практически не должен высовываться - тихо сидеть в фоне и подгружать данные по мере необходимости Над SQLite базой организуем ContentProvider выдающий наружу интересующие нас поля Сверху ContentProvider'а нахлобучиваем CursorAdapter, который в свою очередь отображает данные на кастомный ListView Если сделать ListView по уму то можно его "научить" операциям pull-to-refresh - то есть при достижении донышка "дергать" фоновый поток и подгружать старые записи.

Комментариев нет:

Отправить комментарий