zoukankan      html  css  js  c++  java
  • 数据库内存泄漏——A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!

     

    详细异常:

    A SQLiteConnection object for database '/data/data/.../database/....db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed

    明显是数据库操作异常,数据库对象被锁,明确告诉你对象长久不用需要关闭。

    改正:获取数据库对象改成单例模式,项目运行中只保证唯一一个对象即可。如下:

    private static XXXXSQLHelper mInstance = null;

    public synchronized static XXXXSQLHelper getInstance(Context context) {
    if (mInstance == null) {
    mInstance = new XXXXSQLHelper(context);
    }
    return mInstance;
    };

    调用如下:

    public XXXXDBUtil(Context context) {
    mSQLiteDatabase = XXXXSQLHelper.getInstance(context)
    .getWritableDatabase();
    }

    注意:此时数据库对象是唯一实例了,不需要close了,如果close掉,将会出现对象已关闭的严重异常,导致程序崩溃。

  • 相关阅读:
    idea 相关
    dns 相关
    bash 相关
    建造者模式(Builder)
    C#中out 及 ref 区别
    C# 2.0新特性
    Asp.net.Ajax控件学习
    装饰模式(Decorator Pattern)
    职责链模式(Chain of Responsibility Pattern)
    面向对象
  • 原文地址:https://www.cnblogs.com/Sharley/p/5867999.html
Copyright © 2011-2022 走看看