Android'简单'数据库场景:使用database.close()或databaseHelper.close()关闭是否更好?

时间:2013-08-08 16:47:50

标签: android android-sqlite

在Android'简单'数据库场景中,使用 database.close()和非 databaseHelper.close()是否有任何好处或理由?使用 databaseHelper.close()和非 database.close()是否有任何好处或理由?

为什么存在这两种密切方法(如下所示)存在技术原因?

谢谢, 詹姆斯

MyDatabaseHelper databaseHelper = new MyDatabaseHelper(this);
SQLiteDatabase database = databaseHelper.getWritableDatabase();
   ContentValues valuesToInsert = new ContentValues();
   int id = 0;
   valuesToInsert.put("_id", id);
   valuesToInsert.put("name", "test");
   database.insert("MyRecordsTable", null, valuesToInsert);
database.close();

OR

MyDatabaseHelper databaseHelper = new MyDatabaseHelper(this);
SQLiteDatabase database = databaseHelper.getWritableDatabase();
   ContentValues valuesToInsert = new ContentValues();
   int id = 0;
   valuesToInsert.put("_id", id);
   valuesToInsert.put("name", "test");
   database.insert("MyRecordsTable", null, valuesToInsert);
databaseHelper.close();

1 个答案:

答案 0 :(得分:0)

没有太大的区别。这是close()SQLiteOpenHelper的完整定义:

/**
 * Close any open database object.
 */
public synchronized void close() {
    if (mIsInitializing) throw new IllegalStateException("Closed during initialization");

    if (mDatabase != null && mDatabase.isOpen()) {
        mDatabase.close();
        mDatabase = null;
    }
}

两者都存在的原因是,可能存在开发人员仅使用SQLiteOpenHelper与其数据库进行交互并希望close()方法直接访问数据库的情况,反之亦然开发人员根本不选择使用OpenHelper。