android - studio - ¿Necesito un proveedor de contenido con un cargador de cursor?
update content provider android (3)
Estoy teniendo problemas para averiguar cómo usar un CursorLoader.
El problema que estoy tratando de resolver es cómo mostrar los datos de mi base de datos SQLite en un ListActivity. Las filas de la lista utilizan un diseño personalizado, por lo que necesitan datos de 3 campos (todos en la misma tabla).
Junto con una serie de preguntas sobre el desbordamiento de pila, también leí esta publicación del blog y tomé la decisión que necesitaba para crear un proveedor de contenido para mi base de datos.
Nunca he usado Proveedores de contenido antes de acudir a la ayuda de Android sobre cómo hacer esto.
El punto 1 dice:
No necesita un proveedor para usar una base de datos SQLite si el uso es totalmente dentro de su propia aplicación.
Así que ahora estoy atascado, parece que no puedo usar un CursorLoader sin un ContentProvider y se me recomienda no crear un ContentProvider si es para usar solo dentro de mi aplicación.
Actualmente estoy pensando que tal vez la ayuda está desactualizada o no estaba pensando en los Cursor Loaders cuando se escribió.
Entonces, ¿necesito continuar y crear un ContentProvider de todos modos o hay otra forma de hacerlo? Cualquier consejo será de ayuda!
Después de investigar, encontré que un ContentProvider IS es necesario si está utilizando el CursorLoader integrado.
Como dice wsanville, puede rodar su propio cargador para que no necesite un ContentProvider.
La respuesta corta es que puede rodar su propio cargador para omitir la necesidad de un proveedor de contenido e interactuar directamente con una base de datos SQLite. Otros ya han hecho la implementación, una de las cuales es realizada por CommonsWare , llamada LoaderEx . Ese proyecto tiene una clase llamada SQLiteCursorLoader que puede ser útil.
Además de las muestras proporcionadas por el proyecto GitHub anterior, puede revisar una de mis aplicaciones de prueba (también en GitHub) usando cargadores sin un proveedor de contenido.
crear un ContentProvider es bastante fácil. Lo suficientemente fácil como para que no se interponga en su forma de usar un CursorLoader. Este es un ejemplo rápido de cómo usarlos junto con un sencillo ContentProvider: http://responsiveandroid.com/2012/03/19/using-an-android-cursor-loader-with-a-content-provider.html