【问题标题】:SqlLiteDatabaseLockedException in android database helper classandroid 数据库助手类中的 SqlLiteDatabaseLockedException
【发布时间】:2013-08-07 09:33:07
【问题描述】:

我有一个帮助程序类,用于管理整个应用程序中的所有数据库查询。它是一个单例类和一个 getInstance() 方法。

public static MasterDatabase getInstance() {
    if (_masterDb == null) {
        _masterDb = new MasterDatabase();
    }
    return _masterDb;

}

虽然我已经注意将只创建此类的一个实例,但我得到 SqlLiteDatabaseLockedException 并显示数据库已锁定的消息。我曾想过实施双重检查锁定技术,但似乎它可能会在多核环境中刹车。那么,确保此异常不会在我的应用程序中重复的最佳实现是什么。

注意:其他事务方法(插入、删除、..)不同步。

问题2:使事务方法同步有用吗?

【问题讨论】:

    标签: android database performance sqlite


    【解决方案1】:

    如果你使用的是android-s DatabaseHelper,数据库可能已经被DatabaseHelper打开了。

    试试这个

    private static DatabaseHelper _myDatabaseHelper = null;
    
    public static MasterDatabase getInstance() {
        if (_myDatabaseHelper == null) {
            _myDatabaseHelper = new MyDatabaseHelper();
        }
        return _myDatabaseHelper..getWritableDatabase();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多