¿Es posible comparar dos cursores?

Necesito comprobar si dos cursores apuntan en las mismas filas con los mismos valores. ¿Es posible?

Más detalles:

  1. Estoy cargando datos de mi propio ContentProvider
  2. Estoy enviando solicitud al servidor y luego actualizar mis datos dentro de ContentProvider con nuevos valores.
  3. Si se cambian los valores, necesito notificar al usuario que puede actualizar los datos.

En SQLite, las filas no tienen una identidad separada de sus valores de columna (pero el ROWID es uno de estos valores).

Lo que desea requiere que sus datos tengan alguna columna única (s) como parte del cursor, ya sea el ROWID , o algún otro valor clave que se garantiza que no tenga duplicados.

De lo contrario, nunca se puede saber si lo que ves son sólo dos registros que tienen los mismos valores en esas columnas.

Según la respuesta suprimida de CommonsWare:

Itere sobre las columnas relevantes en el Cursor, recupere los valores y compare cada uno.

Aunque es posible que no sepa de antemano el tipo de cada columna, puede averiguarlo con Cursor.getType() . También puede utilizar Cursor.getColumnNames() para obtener el nombre de cada columna y el número de columnas.

Esta información le permitirá utilizar el método de acceso correcto para obtener cada valor y compararlo.

  • Excepción SQLite: la base de datos está bloqueada
  • Obtención de todos los registros de sqlite android
  • Obtener boolean de la base de datos utilizando Android y SQLite
  • ¿Cómo puedo interpretar este seguimiento de la pila de Android?
  • Cómo hacer la sincronización bidireccional entre Android SQLite y SQL Server
  • ¿Cómo aceptar cadenas aproximadamente correctas como correctas, al comparar?
  • Android - La mejor manera de sincronizar SQLite con MySQL
  • Error: Asegúrese de que el cursor se inicializa correctamente antes de acceder a los datos de él?
  • Número de versión para SQLite DB
  • La aplicación se bloquea al iniciar Debido a java.lang.IllegalArgumentException: la columna '_id' no existe
  • Ciclo de vida de la base de datos Sqlite? ¿Se elimina cuando se cierra la aplicación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.