Destrucción / ciclo de vida de ContentProvider

Tengo curiosidad si alguien puede explicar el ciclo de vida de un ContentProvider. Estoy especialmente interesado en si, cuando y bajo qué circunstancias un proveedor es destruido. Eso no parece estar cubierto por la documentación .

La sección ContentProvider de este artículo habla de documentación que es difícil de encontrar, pero incluye un enlace a una discusión de Google Groups donde un ingeniero de Google dejó una respuesta rápida, afirmando que "los proveedores de contenido nunca son destruidos. Su proceso ".

Bueno, tal vez un ContentProvider vive mientras su proceso, pero ¿cuánto tiempo dura su proceso? Supongamos que tengo una aplicación que proporciona un ContentProvider y una consulta de otra aplicación es la única razón por la que se creó mi proceso de ContentProvider (es decir, tampoco hay una Actividad o Servicio en ejecución). ¿Seguiría funcionando este proceso indefinidamente? Cuando Android tiene pocos recursos, destruye componentes como Servicios. ¿Los ContentProviders no son también candidatos a ser destruidos cuando los recursos son escasos?

Me interesa especialmente si, cuando y en qué circunstancias se destruye un proveedor

Se crea cuando se inicia el proceso (incluso antes de que se cree el objeto de Application ) y permanece hasta que finaliza el proceso.

¿Cuánto tiempo vive su proceso?

Eso varía en función de lo que está pasando con la aplicación, el usuario y el dispositivo.

¿Seguiría funcionando ese proceso indefinidamente?

No.

Cuando el sistema está agotando recursos, Android destruye componentes como Servicios.

No, no lo es. Cuando el sistema está funcionando con poca RAM, Android termina los procesos.

¿Los ContentProviders no son también candidatos a ser destruidos cuando los recursos son escasos?

Un proceso que contiene un ContentProvider puede ser terminado, ya sea debido a las condiciones de memoria baja, la vejez, la acción del usuario, etc

Proveedores de contenido no tienen un ciclo de vida particular, no hay mucho que puede hacer para controlarlo. El marco administra la creación y destrucción de un proveedor de contenido (proceso).

Cuando clientes externos o componentes fuera del proceso hacen una solicitud al Proveedor de Contenido, esa solicitud se procesa en un subproceso de un grupo de subprocesos del proceso en el que reside el proveedor. Y cuando no hay más solicitudes, el proceso puede ser recuperado si hay No son más componentes activos (actividad, servicio) en ese proceso. Pero eso es una decisión que toma Android.

  • Android: transacciones SQLite al usar ContentResolver
  • Cómo obtener el error de restricción cuando una inserción falla
  • ContentLoader no se actualiza correctamente después de cambios en la base de datos
  • ¿Por qué son los servicios REST de Android ContentProviders?
  • IllegalArgumentException: el valor de enlace en el índice 1 es nulo
  • Android - Uso del patrón Dao con contentProvider
  • ¿Cómo insertar correctamente valores en la base de datos SQLite utilizando el método insert () de ContentProvider mediante un CursorLoader?
  • Android 1.x Contacts.Extensions para un tipo de cuenta personalizada?
  • Obtener número de teléfono para varios destinatarios en android
  • Proveedor de contenido privado de Android?
  • La inserción de miles de entradas de contacto mediante applyBatch es lenta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.