8

正確に私はsqliteデータベースからandroidカーソルに1MB以上のデータをロードしようとしています。ロード時に次のようなエラーが発生します

08-04 11:10:15.813: ERROR/CursorWindow(4465): need to grow: mSize = 2097152, size = 403719, freeSpace() = 209669, numRows = 1
08-04 11:10:15.813: ERROR/CursorWindow(4465): Attempting to grow window beyond max size (2097152)
08-04 11:10:15.813: ERROR/Cursor(4465): Failed allocating 403719 bytes for blob at 0,13
08-04 11:10:15.813: DEBUG/Cursor(4465): finish_program_and_get_row_count row 0
08-04 11:10:15.899: ERROR/CursorWindow(4465): need to grow: mSize = 2097152, size = 403719, freeSpace() = 209669, numRows = 1
08-04 11:10:15.899: ERROR/CursorWindow(4465): Attempting to grow window beyond max size (2097152)
08-04 11:10:15.899: ERROR/Cursor(4465): Failed allocating 403719 bytes for blob at 0,13
08-04 11:10:15.899: DEBUG/Cursor(4465): finish_program_and_get_row_count row 0
08-04 11:10:15.899: ERROR/CursorWindow(4465): Bad request for field slot 0,0. numRows = 0, numColumns = 14
08-04 11:10:15.899: DEBUG/AndroidRuntime(4465): Shutting down VM.

大きなデータ(1MB以上)をAndroidカーソルにロードする方法を知っている人はいますか?ありがとう、

4

1 に答える 1

8

500KBのblobをデータベースに保存しないでください。データベースに識別子を保存し、blobをファイルとしてストレージに配置します。MODE_PRIVATEを使用すると、他のプロセスからアクセスできなくなります。

于 2011-08-04T15:56:48.287 に答える