studio - sqlite android tutorial español
SQLiteOpenHelper versus ContentProvider (2)
Mi pregunta es: ¿ContentProvider hace lo mismo que SQLiteOpenHelper?
ContentProvider
es implementado por el desarrollador de la aplicación si permite que otros desarrolladores accedan a la base de datos de la aplicación en su aplicación, simplemente para compartir . Es como un servidor de alguna base de datos y su cliente es ContentResolver
que conoce la autoridad de ContentProvider
. Por ejemplo, si necesita obtener algunos contactos de su dispositivo, entonces debe usar ContentProvider
of Contacts database y más concretamente sus clases contract .
Si conoce una autoridad de ContentProvider
apropiado, puede comunicarse con ella utilizando un objeto ContentResolver
.
En otros casos, debe interactuar con la base de datos a través del modelo abstracto de SQL, representado por las clases android.database
y android.database.sqlite
.
Y también - ContentProvider
disponible desde el nivel primario de la API como uno de los componentes principales de la aplicación.
Actualizar
De la documentación oficial:
Antes de comenzar a crear un proveedor, haga lo siguiente:
Decide si necesitas un proveedor de contenido. Debe crear un proveedor de contenido si desea proporcionar una o más de las siguientes características:
Desea ofrecer datos o archivos complejos a otras aplicaciones. Desea permitir que los usuarios copien datos complejos de su aplicación en otras aplicaciones. Desea proporcionar sugerencias de búsqueda personalizadas utilizando el marco de búsqueda.
Soy nuevo en el desarrollo de Android. listView
crear una aplicación que lea de la base de datos interna (SQLite) y enumerar todos los datos en una lista (estoy usando listView
).
Hasta ahora obtuve una clase llamada DatabaseHandler
que amplía SQLiteOpenHelper
y que está haciendo todas las operaciones de la base de datos (seleccionar datos, insertar datos, eliminar datos, ...).
Pero ahora que quiero enumerar los valores, estoy leyendo en algunos sitios web que tengo que usar un Loader
lugar de Cursor
, y por lo tanto un ContentProvider
. Hasta ahora entiendo que ContentProvider
proporciona acceso controlado a la base de datos.
Mi pregunta es: ¿ ContentProvider
hace lo mismo que SQLiteOpenHelper
?
Además, estoy usando API nivel 8 y ContentProvider
solo está disponible en API nivel 11. ¿Cuál es la mejor manera de resolver esto?
Gracias por adelantado.
SQLiteOpenHelper
se usa para administrar la creación de la base de datos y abrir. Es solo una clase auxiliar para la base de datos sqlite y podría usarse en cualquier lugar con la operación db.
ContentProvider
es uno de los 4 componentes básicos de Android, los otros 3 son Activity
, Service
y Broadcast
. ContentProvider
se usa para administrar el acceso a cualquier conjunto de datos estructurados, incluida la base de datos sqlite. La fuente de datos de ContentProvider
podría ser una base de datos, pero no necesariamente.
ContentProvider
menudo se usa para proporcionar datos propios a otras aplicaciones, al igual que ContactsProvider
y CalendarProvider
. Y es más seguro proporcionar una interfaz específica utilizando ContentProvider
, en comparación con proporcionar una base de datos directamente.