移动光标时android.database.CursorWindowAllocationException

我使用SQLite数据库,我经常得到运行时错误,我找不到原产地。 查询后,我使用moveToFirst指向检索到的第一个logging,这有时会触发android.database.CursorWindowAllocationExceptionexception。 添加到这个exception是下面的句子:“游标窗口分配2048kb失败。#打开游标= 736(#cursors opendby这个proc = 736)”。

在Android文档中,我还没有发现任何与此exception相关的内容。 有谁知道这是因为和避免它的方法?

Solutions Collecting From Web of "移动光标时android.database.CursorWindowAllocationException"

这个错误几乎总是由于在完成时没有closures游标。 每次打开游标时,都需要内存来映射游标表示的数据,并且在游标closures之前内存不能被释放。 可用于此目的的内存量有限制,所以如果游标未closures并且应用程序继续打开新的内存,则此错误很可能在某个时刻发生。

我build议你检查一下你的代码,确保所创build的所有游标在某个时刻被closures。 还要注意在循环中打开游标的任何代码 – 你的错误消息说'打开游标= 736',这表明在某种循环内有很多游标活动。