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?
- Cómo cargar un URI con el prefijo "content: //" usando Glide Android?
- Android CursorLoader no responde a las notificaciones de ContentProvider
- ¿Cómo manejar el evento de clic de sugerencia con SearchView en ActionBar, ContentProvider llamando a webService, devolviendo el cursor?
- Android, proveedor de contenido en el proyecto de biblioteca
- Android: ContentProvider para cada tabla / manejo de relaciones uno-a-muchos
- Obtener cursor mediante la biblioteca Realm
- ¿Qué para establecer CursorAdapter (Contexto contexto, Cursor c, int flags) a fin de hacer que funcione con CursorLoader?
- ¿Qué tipo de comunicación entre aplicaciones debería elegir?
- ¿Cómo abrir la lista de archivos adjuntos de los medios?
- Seleccione las primeras filas en contentProvider
- Proveedores de contenido multiproceso sincronizados a uno predeterminado
- ¿Cuáles son la semántica de withValueBackReference?
- ¿Cómo arreglar el proveedor de contenido url no se encuentra en android Proveedor de contenido?
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 ..