Android数据库在尝试打开时被锁定

时间:2015-11-01 16:11:01

标签: android

我正在尝试从云中打开已下载的SQLite DataBase并在Android中将其打开,但我收到此错误:database is locked (code 5): , while compiling: PRAGMA journal_mode

到目前为止,我所做的是:

    @Override
    public void onCreate(SQLiteDatabase db) {

        try {
            api.filesDownload(mountID, "/MusicDB", DB_PATH, new SimpleProgressListener());
            db = SQLiteDatabase.openDatabase(DB_PATH + DATABASE_NAME, null, SQLiteDatabase.OPEN_READWRITE);
            db.close();
        } catch (SQLiteException | StorageApiException e) {
            e.printStackTrace();
            Log.i("DB","Eroare: "+e.getMessage());
            // CREATE TABLE'S CODE //
        }
    }

当我第一次打开应用程序时,我检查我的云是否存在任何数据库并下载它,现在一切正常,直到我尝试打开database

有什么办法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

看起来你有几个不同的问题。

  • 您的代码看起来就像是在UI上下载数据库 线。如果你是,你不应该 - 使用后台线程。如果 你是异步下载它(即在后台线程上), 然后它可能不会完全下载了 你尝试在下一行代码中打开它的时间(可能只有少数几个 几毫秒后。)

  • 仔细查看您用于下载和打开数据库的路径,并验证它们是否已解析到同一位置。在我看来,他们可能不会。