Android: кеширование XML-файла из RSS-канала - PullRequest
4 голосов
/ 20 января 2011

Я только начал делать свое первое приложение для Android, которое оказалось RSS Reader. Я немного погуглил по этому поводу, но не нашел четкой ссылки. Что я хочу сделать, так это кэшировать мой xml-файл (файл фида) на sdcard, чтобы, когда телефон не подключен к сети, пользователь все еще мог просматривать фид, автоматически приказывая приложению искать его, когда сеть не обнаружена. Теперь у меня есть механизм кеширования изображения, но мне интересно, как его использовать для других файлов, поскольку он был указан только для изображений, которые преобразуют его в растровое изображение с помощью HashMap ().

1 Ответ

4 голосов
/ 20 января 2011

Я думаю, что предпочтительным способом (так же как Umakant Patil прокомментировал ваш вопрос) является хранение данных в базе данных SQLite. Обычно вы пишете фоновый сервис, который время от времени обновляет вашу базу данных данными на стороне сервера. Ваше приложение всегда будет читать только из вашей базы данных SQLite. Обратите внимание, что служба и приложение, как правило, живут своей жизнью независимо друг от друга (ваше приложение никогда не будет напрямую взаимодействовать с вашим сервисом).

Эта процедура также несколько безопаснее с архитектурной точки зрения. Ваше приложение никогда не будет зависеть от сетевого подключения или проблем синхронизации из-за сетевого трафика. Он будет полагаться только на доступ к данным и базе данных на вашем локальном устройстве.

СОВЕТ № 1: Вы можете передать запись в AlarmManager, который активирует вашу службу через заданный интервал. Ваш сервис синхронизирует вашу базу данных с источником RSS, а затем уничтожит себя (сохранение ресурсов всегда хорошо: -)

Вот хороший пример Сервисов в Android: http://developer.android.com/reference/android/app/Service.html

А о контент-провайдерах здесь: http://developer.android.com/guide/topics/providers/content-providers.html

СОВЕТ № 2: Обратите внимание, что вам не обязательно нужен поставщик контента для связи с вашей базой данных. Поставщик контента будет полезен, если вы хотите «стандартизировать» связь с вашей базой данных. Возможно, нескольким компонентам вашего приложения требуется доступ к нему или даже нескольким приложениям, тогда лучше использовать уже определенный «стандартный стандарт» способ доступа к базе данных.

...