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 ".
- Problemas para escribir la memoria interna de Android
- Cree un álbum personalizado en la aplicación Galería de Android
- Proveedor de contenido compartido
- ListActivity no se actualiza a medida que los datos llegan
- Patrón de diseño de Google IO Rest, Finalizado ContentProvider y pegado ahora
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?
- Utilice Insertar o Reemplazar en ContentProvider
- ¿Cuál es la forma correcta de obtener datos del proveedor de contenido una vez que tiene la fila uri?
- Android - Consultando el ContentProvider de SMS?
- El orden de instalar la aplicación está cambiando el comportamiento?
- Android: consulta ContactsContract, necesita más cadena de selección avanzada
- Almacenamiento de archivos en Android Database (Custom Content Provider) utilizando el campo _data - v1.6
- ¿Cuál es la CONTENT_URI correcta para la tabla de subprocesos de SMS?
- ¿Cómo manejar el evento de clic de sugerencia con SearchView en ActionBar, ContentProvider llamando a webService, devolviendo el cursor?
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.
- Herramientas de ListView: listitem no funciona en android studio 2.2 stable channel
- ¿Deberíamos preferir AdMob en los servicios de Google Play en comparación con el "antiguo" SDK de AdMob