android - qué - proveedor de contenido video
Androide. ¿Proveedor de contenido o base de datos? (3)
Ciertamente hay problemas que valen la pena para los cuales un proveedor es una solución, particularmente para la publicación de datos entre aplicaciones. Por ejemplo, debe usar un proveedor de contenido para proporcionar sugerencias de búsqueda a un Cuadro de búsqueda rápida.
Sin embargo, para uso interno dentro de una aplicación, no soy fanático. Los beneficios en mi humilde opinión son superados por los costos (por ejemplo, flexibilidad reducida, gastos generales adicionales).
Si implementa un proveedor de contenido, tenga en cuenta que son accesibles por otras aplicaciones de forma predeterminada . android:exported="false"
incluir android:exported="false"
en el elemento <provider>
para que sean privados para su aplicación.
Estoy un poco confundido en la pregunta, si es mejor usar ContentProvider
o Database
. O no importa si no quiero compartir ningún dato con otras aplicaciones.
Si lo he entendido bien, proveedores de contenido basados en SQLite
DBs y también es posible que el contenido de ellos sea solo accesible para mi aplicación.
¿Puedes dar algunas explicaciones?
Muchas gracias,
Mur
El uso de un proveedor de contenido le dará un diseño más modular y le facilitará la vida si, en algún momento en el futuro, desea alcanzar los datos de otras aplicaciones. Si está seguro de que los datos solo serán necesarios desde una aplicación, también podría operar directamente en la base de datos.
Hay una limitación particular de SQLite que debe tener en cuenta y es que SQLite es solo para un solo usuario. Lo que esto realmente significa es que tendrá que evitar que su base de datos se acceda desde múltiples hilos al mismo tiempo. Esto generalmente no es un problema en un proveedor de contenido, ya que casi siempre tienen una implementación de subproceso único.
Las razones para usar el proveedor de contenido están here .
En resumen:
- Cambie fácilmente la fuente de datos subyacente (puede cambiar su base de datos de Sqlite a Mongo o a un archivo JSON sin ningún cambio en la aplicación)
- Aproveche la funcionalidad de algunas clases de Android (adaptador de sincronización, cargadores, adaptadores de cursor): estas clases requieren un proveedor de contenido y no puede usarlas si no tiene una.
- Permita que muchas aplicaciones accedan, usen y modifiquen una sola información de forma segura. (que es realmente la razón principal para usarlo)