Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cuál es el uso de proveedores de contenido privados?

La Guía del desarrollador de Android dice

Los proveedores de contenido también son útiles para leer y escribir datos que son privados para su aplicación y no compartidos.

Generalmente, los proveedores de contenido se utilizan para proporcionar datos a diferentes aplicaciones o compartir datos entre ellos. Me preguntaba si hay algún uso a tener proveedores privados y no querer compartirlo. ¿Hay algún beneficio siempre que un acceso directo a DB o sistema de archivos no proporcionan?

Gracias, Rajath

  • Cierre de la base de datos en un ContentProvider
  • Página web del navegador web de Android
  • ¿Dónde puedo encontrar la implementación de ContentProvider de DownloadManager?
  • Descargar la imagen de la nueva aplicación Google+ (más)
  • El proveedor de contactos de Android sólo obtiene contactos telefónicos con todos los correos electrónicos
  • Cómo agregar una cláusula de límite utilizando el proveedor de contenido
  • ¿Cómo observar el cambio contentprovider? androide
  • Android Obtener el grupo de contactos por ID
  • 2 Solutions collect form web for “¿Cuál es el uso de proveedores de contenido privados?”

    1. Programe automáticamente todo el acceso al lado del servidor y la sincronización en un subproceso de fondo. Sin embargo, en el complemento de aplicaciones, el Resolvedor de contenido / Proveedor ejecutará normalmente las consultas / transacciones del subproceso de la interfaz de usuario de forma predeterminada. Debe realizar todas las transacciones de forma asíncrona (es decir, utilizando un CursorLoader ) para asegurarse de que la aplicación se ejecuta sin problemas en el lado de la interfaz de usuario
    2. Localiza el acceso de DB reentrante desde los subprocesos que acceden a través de ContentProvider , de modo que todo el bloqueo pueda suceder completamente en sus llamadas de sustitución de ContentProvider, en lugar de mantener un seguimiento de ella en una capa de DB, un servicio y una capa de interfaz de usuario.
    3. Como parte de lo anterior, también proporciona una interfaz de singleton agradable a sus datos – Si tiene diez clases de actividad en su aplicación, sólo tiene que pasar por las llamadas estáticas de ContentResolver de cada uno, frente a la necesidad de lidiar con la apertura / cierre de una base de datos SQLite en Cada actividad al pasar de una actividad a otra en su aplicación.
    4. ContentProvider está muy unido al modelo SyncAdapter – lo que significa que es prácticamente la única manera de hacerlo si desea mantener sincronizada su base de datos con una base de datos alojada en la red. (Su aplicación refleja un tipo REST api de la situación)
    5. Se vincula a la interfaz ContentObserver de ContentResolver. Esta es una interfaz donde (entre muchas otras cosas útiles) una vista puede registrarse como observando un conjunto específico de datos (a través del Cursor a esos datos). Entonces, si usted conduce un cambio en el ContentProvider, el CP puede notificar al CR, que puede a su vez notificar cualquier cursores relevante, que a su vez volverá a requerir y hará que la vista se actualice. Esto es mucho más limpio que tener que mantener un seguimiento manual de sus puntos de vista para que pueda invalidar y volver a dibujarlos.

    En cuanto al bloqueo reentrante del DB, no lo hace completamente, pero ayuda: su clase ContentProvider implementa cuatro funciones simples (interfaz CRUD) y, si decide anularla, un quinto, batchAdd () – Esto localiza tu bloqueo. La respuesta simple de hueso es simplemente marcar todas las cuatro / cinco de esas declaraciones de funciones "sincronizadas" en el nivel de función y ya está. Mucho más limpio que tratar de averiguar el bloqueo de 20 lugares que acceden a su base de datos en 5 actividades diferentes.

    Por ejemplo, un escenario de uso de aplicaciones multiproceso (como: el servicio de reproducción de música normalmente se ejecuta en un proceso remoto), entre los dos procesos que en una base de datos de uso compartido de aplicaciones debe utilizar ContentProvider privado.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.