错误日志如下:
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();
ListkidList=new ArrayList<>(); if(db.isOpen()) { Cursor cursor = null; try { if (TextUtils.isEmpty(CurClassId)) { 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.setId(cursor.getString(cursor.getColumnIndex("kid"))); kid.setName(cursor.getString(cursor.getColumnIndex("name"))); kid.setSafe_gate_pic(cursor.getString(cursor.getColumnIndex("safe_gate_pic"))); kid.setClass_id(CurClassId); kidList.add(kid); } while (cursor.moveToNext()); } } catch (Exception e) { Log.e("loadClassKids", e.getMessage()); } finally { if (cursor != null) { cursor.close(); } } } return kidList;
sqlite已经有单例化:
public synchronized static SignDataBase getInstance(Context context){
if (signDataBase == null){ signDataBase = new SignDataBase(context); } return signDataBase; }
finally { if (cursor != null) { cursor.close(); } // 加上以下程式: if (db != null) { db.close(); } }