Content Providers

Content providers

  • Guardan y recuperan datos.
  • Datos disponibles para todas las aplicaciones.
  • No existe otro espacio común entre ellas.
  • Distintos tipos predefinidos (audio, vídeo, ...): 
  • Los datos se guardarán en una tabla, con _ID. 

Content resolver

  • Instancia global en la aplicación que proporciona acceso a los content providers (sean tuyos o de otras apps).
  • Acepta peticiones y las redirige al content provider.
  • Mapea autorities - content providers.
  • No conoce la implementación del content provider.
  • Se le pasa una URI que especifica el ContentProvider. 

Utilización

  • ContentResolver cr = getContentResolver();
  • Uri para acceder (content://host:port/path)
  • Querys para obtener información: 
    • getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder)
    • _ID determinado (ej: _ID=22->content:…/22) 
      • ContentUris().withAppendedID() 
      • Uri().withAppendedPath() 

Utilización

  • Cursor nos permitirá navegar entre los datos obtenidos del Content Provider.
  • Utilizaremos ContentValues y ContentResolver.insert() para añadir nuevos valores a los registros.

Life de una Query

  • Llamamos al content resolver:
    • getContentResolver().query(Uri, String, String, String, String)

  • El content resolver parsea la URI y extrae el autority (que mapea el content provider).
  • El content resolver redirige la petición al content provider. (Se hace una query al content provider)
  • Cuando se ha invocado el método, se realiza la query en el content provider y se devuelve un cursor con los datos obtenidos.

Content Providers

By androidjedi

Content Providers

  • 311