Android: unirse a la consulta mediante el proveedor de contenido

Cómo unirse / comparar la consulta utilizando el proveedor de contenido en android. es posible?

Dependiendo de la relación entre las dos tablas, por lo general aplico alguna de las siguientes soluciones, que documento en el proyecto de biblioteca a través del cual normalmente exponen todos sus proyectos interfaces disponibles externamente (como un proveedor de contenido):

  • Si la tabla A contiene información que casi nunca es interesante sin unirla con la tabla BI simplemente devuelve siempre la JOIN de A y B cuando se consulta A. Puede documentarla en su biblioteca, en el lugar donde definirá URI a "tabla A" .

  • Si las tablas A y B contienen datos que deben ser consultados de forma aislada (lo que quiero decir es: sin JOIN), normalmente proporcionaría un URI adicional, por ejemplo llamado A_JOIN_B_URI en mi biblioteca, que al ser consultado devuelve el comando JOIN de las dos tablas. Una vez más, documentar esto en su lib.

Puede haber más opciones que esto, pero creo que se adhieren mejor a la noción de lo que es un ContentProvider: una interfaz que es agnóstico acerca de lo que almacena los datos se implementa detrás de él. En todas partes donde explícitamente utilice las capacidades del almacén de datos subyacente, esto queda claro por el extraño "helper URI".

Cualquier comentario sobre esto es bienvenido, tal vez podría aprender una cosa o dos ..

  • ContentResolver.notifyChange no funciona
  • how / where para llamar a notifyDataSetChanged de otro fragmento
  • Android: Observación de SMS para subprocesos eliminados
  • Android Obtener el grupo de contactos por ID
  • ¿Cómo ejecutar un servicio singleton (compartido) en una biblioteca para múltiples aplicaciones?
  • UnsupportedOperationException al llamar a getSharedPreferences () de la prueba de unidad
  • Cómo agregar detalles de contacto a través de código en la lista de contactos de Android Phone ..?
  • Android: Ampliación del libro de contactos del usuario. Rendimiento ContentProvider vs Sqlite vs Lista en la memoria
  • ¿Cómo obtener el tamaño de los datos recibidos a través de EXTRA_STREAM en una aplicación que maneja la acción enviar intención?
  • Android recibe sms de la bandeja de entrada, forma optimizada para leer todos los mensajes y agruparlos
  • Android: llama a métodos personalizados en un ContentProvider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.