Я имею годы опыта с разработкой Microsoft.NET (прежде всего, C#) и работал для подхождения к скорости на Android и Java. До сих пор я создал небольшое приложение с парой экранов и рабочего контент-провайдера.
Все примеры, я видел разработку контент-провайдеров обычно, работают с единственной таблицей, таким образом, я получил впечатление, что это было конвенцией.
Я создал пару большего количества контент-провайдеров для других таблиц и столкнулся с "Неизвестным URI" IllegalArgumentException, когда я пытался протестировать их. Исключение выдается одним из моих контент-провайдеров, но не тем, который я намеревался назвать.
Кажется, что мое приложение использует первого контент-провайдера в файле AndroidManifest.xml, который теперь имеет меня задающийся вопросом, должен ли у меня только быть единственный контент-провайдер для целого приложения.
Есть ли какие-либо лучшие практики и/или примеры для работы с несколькими таблицами в приложении Android? У меня должен быть один контент-провайдер на таблицу или только один для целого приложения? Если первый, как я разрешаю URIs надлежащему поставщику? Если последний, как я мешаю своему коду контент-провайдера загрязняться операторами переключения?
99% приложений Android не нуждаются в поставщиках контента.
Поставщики контента имеют одно основное назначение: межпроцессное взаимодействие. Если вы:
, тогда, и только тогда , вы реализуете поставщика контента.
В противном случае все, что вы делаете, - это добавляете накладные расходы вашему приложению и затрудняете сопровождение кода.
Итак, если ваше приложение является одним из 99%, которым не нужны поставщики контента, просто избавьтесь от того, что у вас есть, и получите доступ к своему контенту каким-либо другим способом (например, SQLiteDatabase
).