Android: кэш XML-файла из RSS-канала


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

1 4

1 ответ:

Я думаю, что предпочтительный способ-это (так же, как Умакант Патил прокомментировал ваш вопрос) хранить данные в базе данных 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: Обратите внимание, что для взаимодействия с базой данных вам не обязательно нужен контент-провайдер. Контент-провайдер хорош, если вы хотите "стандартизировать" связь с базой данных. Возможно, несколько компоненты вашего приложения должны иметь доступ к нему или даже к нескольким приложениям, тогда хорошо использовать уже определенный "де-факто стандартный" способ доступа к базе данных.