¿Debo usar un proveedor de contenido?
Estoy leyendo la documentación oficial de los proveedores de contenido de android y he visto esto:
Decida si necesita un proveedor de contenido.
- SQLite en Android Cómo actualizar una fila específica
- Android - BaseColumns y _id
- Cómo establecer una columna como indexador único en Sqlite
- Android: ¿Qué tan segura es la base de datos con la aplicación
- Obtenga latitud y longitud de la base de datos SQLite para usarla en Android MapOverlay
Necesita crear un proveedor de contenido si desea proporcionar una o más de las siguientes características:
- Desea ofrecer datos o archivos complejos a otras aplicaciones.
- Desea permitir a los usuarios copiar datos complejos de su aplicación en otras aplicaciones.
- Desea proporcionar sugerencias de búsqueda personalizadas utilizando el marco de búsqueda.
- No necesita un proveedor para usar una base de datos SQLite si el uso está completamente dentro de su propia aplicación.
Estoy desarrollando una aplicación que sincroniza los datos en el fondo cuando la posición cambia a través de un IntentService.
Lo que he visto es que con ContentProvider se puede observar cuando los cambios de datos que realmente quiero sin que el usuario lo note. Cambia en IntentService y MainActivity observa estos cambios y cuando se notifica, el cambio de contenido de diseño
¿Es una buena idea usar un ContentProvider aunque ni siquiera mencionan esto?
Gracias
- SQLite "INSERT OR REPLACE INTO" no funciona
- Multi claves primarias en Android SQLite
- ¿Cómo comprobar si el valor ya existe en la base de datos android sqlite?
- SQLite por qué copiamos db en carpeta de activos
- Inspeccionar la base de datos android de sql desde Eclipse
- Actualizar una columna como suma de otras dos columnas
- Consulta SQLite muy lenta en Android
- Error log sqlite no se ha podido cargar desde /cachedGeplacement.db
Personalmente, he estado usando ContentProviders en todos mis proyectos durante el último año y medio. Proporcionan una buena abstracción de datos, independiente de la base de datos, para acceder a sus datos. Son muy flexibles, incluso tuve un proyecto de juego donde un URI apuntó a SharedPreference mientras que todos los demás donde para acceder a las tablas de la base de datos. ContentProviders también le permiten utilizar infraestructura de framework ya construida, como CursorLoaders, por ejemplo. Implementar su propio de interfaces y clases abstractas no es tan difícil, pero puede ser mucho tiempo y propenso a errores, ser capaz de aprovechar el trabajo que ya ha sido probado y probado es una gran ventaja.
A propósito, recuerdo la misma pregunta exacta en un poste en google + cerca de 2 semanas hace donde Cyril Mottier dio una respuesta muy buena. Puedes leerlo aquí .
- ¿Por qué mi método de comparación arroja IllegalArgumentException a veces?
- Android, cómo manejar el cambio en la red (de GPRS a Wi-fi y viceversa) mientras que el sondeo para los datos