tutorial studio room example español ejemplo descargar consultas android sqlite design sqliteopenhelper

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.