Nie sądzę, nie ma twardy i szybki sposób określić odpowiednią granicę, ale spojrzał w dokumentacji CursorWindow i stwierdził, że copyStringToBuffer (int row, int column, CharArrayBuffer buffer)
wydaje się obiecujące jako CharArrayBuffer ma pole całkowitą zwaną sizeCopied oraz metodę copyStringToBuffer
potrzebny tekst na określony wiersz i kolumnę. Może możesz pobrać rozmiar z bufora i dodać do każdego wiersza i kolumny? Jeśli używasz SQLiteCursor, możesz użyć setWindow(CursorWindow window)
, aby ustawić własne okno.
Najlepszym sposobem, jaki udało mi się opracować do tej pory, jest wypróbowanie kilku rzędów i "oszacowanie" liczby rzędów, które można przeciągnąć. Musisz tylko upewnić się, że nigdy nie przekroczysz limitu 1 MB. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Najlepszą metodą jest użycie koncepcji stronicowania, czyli pobranie danych z bazy danych w częściach, pobranie rzędów dziesięć na dziesięć i wyczyszczenie kursora przed następnym pobraniem z bazy danych. – deepak825