Контент-провайдер или ресурс, деятельность и сервис сотрудничества - PullRequest
1 голос
/ 21 января 2011

У меня простой вопрос о дизайне Android.

Я представляю сценарий, в котором я предоставляю услугу и действие.И служба, и действие должны читать / записывать одни и те же данные.Основная идея - это живой список воспроизведения: служба, которая воспроизводит список, «выталкивает» песню из списка после завершения воспроизведения, но приложение также может редактировать список, добавляя или удаляя песни.

Iрассматривал возможность использования ContentProvider для реального списка воспроизведения, думая, что это будет просто, но все примеры ContentProvider, которые я могу найти в Интернете, кажутся слишком сложными или включают только SQLite.

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

Какой подход кажется более подходящим?Если я действительно должен использовать ContentProvider, может кто-нибудь, пожалуйста, направить меня к простейшей возможной реализации, желательно без использования SQLite?На мой взгляд, ContentProvider кажется слишком сложным для моей простой цели.

Спасибо за любые мнения!-Chase

1 Ответ

1 голос
/ 10 апреля 2011

ContentProvider может сохранять данные, которым он доверяет, как ему нравится.Как правило, это означает SQLite, поскольку сопоставление с интерфейсом ContentProvider интуитивно понятно.

Однако, если ваш ContentProvider реализует операции вставки (), update (), delete () и query (), (илиреализует столько, сколько требуется приложению, которое использует поставщик, чтобы выполнить свою работу) вы можете сохранять данные, которые входят и выходят, используя любой механизм, который вам нравится.Не стесняйтесь хранить его в базе данных SQLite, файле или где-либо еще.

Просто имейте в виду, что ваш ContentProvider может быть убит и перезапущен, возможно, даже подвергнут сборке мусора и восстановлен позже, поэтомувам нужно использовать что-то надежное против того, чтобы класс ушел и был повторно инициализирован.

В вашем случае вам, вероятно, наплевать на сохранение после перезагрузки (кто заботится о том, чтобы список воспроизводимой музыки был там после перезагрузки)так что какого-то списка в статической переменной должно быть достаточно.

...