Android распространяет ContentProvider как библиотеку в комплекте с приложением - PullRequest
1 голос
/ 20 сентября 2011

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

Поскольку я работаю над обновлением, я хотел сделать проект более дружественным к MVC и начал изучать использование ContentProvider вместо простого SQLiteOpenHelper. Я склоняюсь к этому, потому что документация Google НЕВЕРОЯТНО непреклонна в их использовании. Моя проблема связана с конфликтом имен.

TL; DR Пропустите здесь вопрос.

Если два сторонних приложения Android (сделанные одним и тем же разработчиком) хотят использовать один и тот же ContentProvider, но не полагаются на другое устанавливаемое приложение, могут ли они оба включать копию ContentProvider (с одинаковыми правами доступа и всем остальным) и будет ли разрешено быть установленным одновременно (используя самую высокую версию ContentProvider)?

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

1 Ответ

1 голос
/ 20 сентября 2011

Я склоняюсь к этому, потому что документация Google НЕВЕРОЯТНО непреклонна в их использовании.

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

Если два приложения Android сторонних производителей (сделанные одним и тем же разработчиком) хотят использовать один и тот же ContentProvider, но не полагаются на другое устанавливаемое приложение, могут ли они включать копию ContentProvider (с одинаковыми правами доступа и всем остальным) и будет ли разрешено быть установленным одновременно (используя самую высокую версию ContentProvider)?

AFAIK, первый зарегистрированный ContentProvider выиграет, а не самая высокая версия. На самом деле, я не уверен, что второе приложение будет установлено, если оно попытается переопределить существующий ContentProvider.

Более того, если пользователь удаляет текущую ContentProvider, другое приложение облажается, так как его данные теперь становятся «пуфами».

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