Sqlite检索中的巨大文本

时间:2018-02-07 08:34:16

标签: android android-sqlite

我在sqlite android中有一个用例,其中我在android api响应中有大量文本,它在android sqlite字段名称图像中正确存储

文本正确存储在sqlite中,因为sqlite说TEXT字段可以存储非常长的文本

  

拦截者:

当涉及到该文本的回复时,我使用下面的代码片段:

 questionModel.setImageBuffer(new StringBuffer(imgData == null ? "" : 

    (questionCursor.getString(questionCursor.getColumnIndex(Constants.COLUMN_QUESTION_IMAGE)))));

基本上这会将内容包装在字符串中,因此它不适合字符串而内容被破坏

任何人都可以建议我如何将该字段正确地提取到StringBuffer变量

  

编辑:

只需查看文本下面附带的图像是存储已满,其大小也显示在sqlite浏览器中,我提取该数据库并验证它。

enter image description here

1 个答案:

答案 0 :(得分:0)

一种解决方案是将文本存储为文件并保存路径而不是数据库中的文本。

原因是根据Cursor size limit in Android SQLiteDatabase存在限制(1Mb)。

在一篇文章中指出: -

  

Binder事务缓冲区的固定大小有限,目前为1Mb,   由进程中的所有正在进行的事务共享。   因此,当存在许多异常时,可以抛出此异常   即使在大多数个别交易中,交易仍在进行中   中等大小。   TransactionTooLargeException

然而根据后来的帖子,限制是每行2MB。 SQLite CursorWindow limit - How to avoid crash