【问题标题】:Android: Cursor Window is fullAndroid:光标窗口已满
【发布时间】:2012-08-08 10:55:18
【问题描述】:

W/CursorWindow(15677):窗口已满:请求分配 2195889 字节,可用空间 2096720 字节,窗口大小 2097152 字节

我知道有可用的应用内存:

D/dalvikvm(15677):GC_FOR_ALLOC 释放 9K,30% 释放 17050K/24291K,暂停 45ms

因此,当将blob 读入byte[] 时,它纯粹与光标大小窗口有关。

我使用内置方法从游标读取 blob。

    try
    {
        c = rdb.query("Photos", new String[]{"photo"}, "id = ?", new String[]{""+photoID}, null, null, null);
        if(c.moveToFirst())
        {
            byte[] tArray = c.getBlob(c.getColumnIndex("photo")); // THIS LINE ERRORS
        }               
    }catch(Exception e)
    {
        e.printStackTrace();
    }
    c.close();

    return tArray;

有没有办法解决这个问题?窗口大小似乎限制为 2097152 字节。

【问题讨论】:

    标签: android memory sqlite blob


    【解决方案1】:

    似乎最好的解决方法是将照片存储在 SDCard 上,并将 URI 保存在数据库中。

    虽然我想避免这种情况,但它并不算太糟糕,而且更加稳定。

    【讨论】:

      猜你喜欢
      • 2013-12-04
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多