安卓Sqlite数据库内存溢出

错误日志如下:
2016-09-30 01:29:59 E/IMemory 1187: cannot map BpMemoryHeap binder=0xbecdfee8, size=462848, fd=74 Out of memory

2016-09-30 01:29:59 F/libc 1187: Fatal signal 11 SIGSEGV at 0xffffffff code=1, thread 1199 Binder_2

2016-09-30 01:29:59 E/CursorWindow 1187: Could not allocate CursorWindow /data/data/../**.db of size 2097152 due to error -1
2.
2016-09-30 01:29:59 E/getDataNums 1187: Cursor window allocation of 2048 kb failed.

代码如下:

SQLiteDatabase db = dbOpenHelper.getReadableDatabase;

 List<KidListModel> kidList=new ArrayList<>; ifdb.isOpen { Cursor cursor = null; try { if TextUtils.isEmptyCurClassId { cursor = db.query"KidList", null, null, null, null, null, null; } else { cursor = db.query"KidList", null, "class_id = ?", new String[]{CurClassId}, null, null, null; } if cursor.moveToFirst { do { KidListModel kid = new KidListModel; kid.setIdcursor.getStringcursor.getColumnIndex"kid"; kid.setNamecursor.getStringcursor.getColumnIndex"name"; kid.setSafe_gate_piccursor.getStringcursor.getColumnIndex"safe_gate_pic"; kid.setClass_idCurClassId; kidList.addkid; } while cursor.moveToNext; } } catch Exception e { Log.e"loadClassKids", e.getMessage; } finally { if cursor != null { cursor.close; } } } return kidList;

sqlite已经有单例化:
public synchronized static SignDataBase getInstanceContext context{

 if signDataBase == null{ signDataBase = new SignDataBasecontext; } return signDataBase;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注