El título resume mi pregunta, pero para elaborar básicamente lo que quiero entender es por qué los diseñadores de Android quieren aplicaciones que necesiten trabajar con datos compartidos para usar un proveedor de contenido en lugar de acceder directamente a la base de datos SQLite.
La única razón por la que puedo pensar es en la seguridad porque se puede acceder a ciertos archivos solo mediante ciertos procesos y de esa manera el Proveedor de contenido es el guardián que garantiza que cada aplicación tenga los privilegios adecuados antes de permitir el acceso de lectura y / o escritura al archivo de la base de datos. ¿Es esa la razón principal por la que se creó ContentProvider?
El
ContentProvider
resumen también toda la comunicación entre procesos que se requiere para comunicarse con otras aplicaciones de terceros. Tener que escribir este código usted mismo sería un gran dolor.fuente
ContentProvider también es una abstracción que oculta los detalles de cómo se almacenan / generan los datos. Por ejemplo, en una de mis aplicaciones tengo un proveedor de contenido que devuelve imágenes PNG. Estas imágenes no se almacenan en ningún lugar, se generan a pedido.
fuente