java - 安卓Sqlite数据库内存溢出
怪我咯
怪我咯 2017-04-18 10:04:59
0
1
995

错误日志如下:
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<>();
    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;
}
怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(1)
左手右手慢动作
finally {
            if (cursor != null) {
                cursor.close();
            }
            // 加上以下程式:
            if (db != null) {
                db.close();
            }
        }
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage