java - 安卓Sqlite数据库内存溢出
怪我咯
怪我咯 2017-04-18 10:04:59
[Java讨论组]

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

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

全部回复(1)
ringa_lee
finally {
            if (cursor != null) {
                cursor.close();
            }
            // 加上以下程式:
            if (db != null) {
                db.close();
            }
        }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号