2014-02-02 2 views
2

Я очень новичок в разработке Android.обновление файлов статических ресурсов в android

Предположим, что в моем приложении несколько статических файлов HTML, которые, как я полагаю, потребуют частых обновлений. Предположим, я не хочу публиковать новую версию моего приложения каждый раз, когда файл изменяется, но я хочу сохранить эти файлы в актуальном состоянии.

Что я могу себе представить, это написать часть кода в приложении, чтобы перейти к известному URL-адресу и проверить обновления каждые несколько дней. Если обновленный комплект ресурсов доступен, код будет загружать и распаковывать его, заменяя старые файлы, чтобы пользователь увидел самое обидное содержимое.

Вопросы, которые у меня есть: - такой подход хорошая/плохая идея? Другими словами, являются ли их особые недостатки в том, чтобы делать обновление таким образом или это обычная практика? - как я могу реализовать что-то подобное? Обслуживание? Есть ли существующий образец кода, который я мог бы повторно использовать?

Спасибо!

ответ

2

Если обновленный комплект ресурсов доступен, код будет загружать и распаковывать его, заменяя старые файлы, чтобы пользователь увидел наиболее обидное содержимое.

Это прекрасно, за исключением части «замены старых файлов». Ресурсы доступны только для чтения и не могут быть изменены во время выполнения. Тем не менее, вы можете настроить свой код, который использует эти файлы, сначала искать загруженные и кэшированные обновленные файлы и использовать их, возвращаясь к ресурсам, если обновления недоступны.

Как я могу реализовать что-то подобное?

Если ваше приложение связано с другой синхронизацией данных, и вы используете что-то вроде SyncManager, просто включите эти файлы как часть работы по синхронизации.

В противном случае, use AlarmManager, чтобы договориться о получении контроля каждый раз, чтобы проверить наличие обновлений. Вам, вероятно, понадобится use WakefulBroadcastReceiver или my WakefulIntentService, чтобы выполнить фактическую загрузку, так как устройство захочет засыпать сразу же, если пользователь не использует устройство прямо тогда. Используйте HttpUrlConnection или вашу любимую библиотеку обертки HTTP для загрузки файлов на getFilesDir() или getCacheDir().

Смежные вопросы