No creo que hay una manera fuerte y rápido para determinar el límite derecho, pero miré en la documentación CursorWindow y encontró que copyStringToBuffer (int row, int column, CharArrayBuffer buffer)
parece prometedor como CharArrayBuffer tiene un campo entero llamado sizeCopied y el método copyStringToBuffer
toma el texto en la fila y columna especificadas ¿Tal vez pueda obtener el tamaño del buffer y agregarlo para cada fila y columna que tenga? Si está utilizando SQLiteCursor, puede usar setWindow(CursorWindow window)
para establecer su propia ventana.
La mejor manera que he encontrado hasta ahora es muestrear algunas filas y "estimar" cuántas filas puede tirar. Solo debe asegurarse de no sobrepasar el límite de 1 MB. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
el mejor método es utilizar el concepto de paginación, que significa obtener los datos de la base de datos en partes, obtener filas de diez por diez y borrar el cursor antes de la próxima recuperación de la base de datos. – deepak825