我有一个无法解决的内存问题。
12-17 00:03:10.603: E/AndroidRuntime(19910): android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=723 (# cursors opened by this proc=723)
仅当我刷新页面15-20次(每次进行30次查询)时,才会发生这种情况。
Cursor c;
for(w = 0; w < 30; w++)
{
...
c = dataBase.fetchA();
int valueColIncome = c.getColumnIndex(myDatabase.IEMetaData.IE_VALUE);
if(c.moveToFirst())
{
do
{
...
}while(c.moveToNext());
}
c = dataBase.fetchB();
if(c.moveToFirst())
{
do
{
...
}while(c.moveToNext());
}
...
}
c.close();
我也尝试在for的每个循环中创建一个游标,然后将其关闭,但是没有任何改变。当我刷新此活动超过15次时,将引发异常。
关闭游标!:
for(w = 0; w < 30; w++)
{
...
c = dataBase.fetchA();
int valueColIncome = c.getColumnIndex(myDatabase.IEMetaData.IE_VALUE);
if(c.moveToFirst())
{
do
{
...
}while(c.moveToNext());
}
c.close();
c = dataBase.fetchB();
if(c.moveToFirst())
{
do
{
...
}while(c.moveToNext());
}
c.close();
...
}
导致此错误的最常见原因是游标未关闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句