Cursor
Androidが最大1MBのデータしか保持できないことに気付かずに、Androidアプリのsqliteデータベースにバイナリデータ(protobufs)のチャンクを保存しました。これらのバイナリ BLOB をファイルに格納し、sqlite データベース エントリ内のファイルのみを参照する必要があったことがわかりました。
これらのバイナリ チャンクをファイルに移動するには、データベースをアップグレードする必要があります (アプリはしばらく使用されています)。問題は、一部のユーザーのデータが既に 1 MB の制限を超えている可能性があり、それをデータベースから取得できないことです (Cursor
大きなブロブを含む単一の行の結果にアクセスすると、 がスローされますIllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialize before accessing data from it
)。
Cursor
sqlite データベースに格納されている1MB の制限を超えるバイナリ BLOB を取得するにはどうすればよいですか?