Proveedor de contenido de Android para SQLite DB local: ¿por qué?

Soy bastante nuevo en el desarrollo de Android, pero tengo problemas para rodear a los Proveedores de contenido y específicamente cuáles son los beneficios (si los hay) para crear uno para una fuente de datos SQLite de una sola aplicación y un solo DB. Puedo ver que si quiero usar un adaptador de sincronización, necesito un proveedor de contenido, pero sinceramente la API de sincronización es tan poco asequible que no creo que haya ninguna ventaja sobre rodar mi propio proceso de sincronización remota utilizando REST.

También veo que al implementar un proveedor de contenido en mi base de datos SQLite, obtengo un singleton garantizado administrado por Android, pero estoy usando AndroidAnnotations que puede hacer singleton administración para mí y no parece de lo que he leído que es Incluso necesariamente se recomienda tener un ayudante de singleton DB, siempre y cuando gestionar mis conexiones abiertas correctamente.

¿Me estoy perdiendo de algo? El Content Provider API parece sorprendentemente bajo y propenso a errores para una sola aplicación de DB. Gestionar específicamente las asignaciones URI "a mano" e introducir esa extraña capa de abstracción parece que no agrega mucho valor.

Entonces, ¿hay valor en los proveedores de contenido para SQLite DB local? Y si es así, ¿hay algún marco por ahí que va a generar mis asignaciones URI para mí o es estrictamente rodar su propia?

En primer lugar, la API de sincronización hace mucho más que simplemente cargar datos desde su servidor. Controla el procesamiento por lotes de las actualizaciones de sincronización con sincronizaciones de otras aplicaciones en todo el sistema, asegura la conectividad antes de ejecutarse y optimiza la duración de la batería en todo el sistema (como se explica al ejecutar los Adaptadores de sincronización periódicamente y en la transferencia de datos mediante la guía de adaptadores de sincronización ).

En segundo lugar, el uso de un proveedor de contenido le permite aprovechar muy fácilmente el marco de Loaders (también disponible en la biblioteca de soporte) y CursorLoader, que permite que su interfaz de usuario se actualice automáticamente a medida que cambian los datos en el proveedor de contenido. Esto puede reducir considerablemente la cantidad de elementos necesarios en todas sus actividades.

Si la plantilla del Proveedor de contenido en sí es un problema, entonces ciertamente puede utilizar marcos de anotación como ProviGen para generar automáticamente la gran mayoría de un proveedor de contenido para usted.

También hay algunas funciones en Android que sólo se pueden hacer con la ayuda de un proveedor de contenido, incluyendo sugerencias de búsqueda personalizadas y compartir archivos privados de aplicación a otras aplicaciones (aunque la clase de FileProvider de ayuda que extiende ContentProvider es la mayor parte de lo que necesitaría para ese).

Las pruebas de interfaz de usuario pueden hacerse mucho más fáciles, así como también se puede utilizar el MockContentProvider proporcionado para simular conjuntos específicos de datos sin tener que cambiar el código de actividad (suponiendo que sólo se cargan datos del proveedor de contenido, por supuesto).

  • SQLiteDiskIOException: error de E / S de disco (código 3850)
  • ¿Cuál es la forma más rápida de cargar 10000 filas de la base de datos SQLite?
  • Android-SQLite. Relación de uno a muchos
  • Sugar ORM simplemente no creará tablas
  • Búsqueda acentuada en sqlite (android)
  • Excepción de puntero nulo al crear base de datos sqlite
  • Consulta compleja con SQL COUNT y SUM
  • Programa de Android para convertir la base de datos SQLite a Excel
  • Android - Tiempo de vida de las diferentes opciones de almacenamiento
  • Android SQLite: intenta volver a abrir un objeto ya cerrado
  • ¿Cómo obtener el recuento de filas en sqlite usando Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.