2

在 Android 的“简单”数据库场景中,使用database.close()和 Not databaseHelper.close()有什么好处或理由吗?使用databaseHelper.close()和 Not 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();

或者

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();
4

1 回答 1

0

真的没有太大的区别。这是close()within的完整定义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,反之亦然。

于 2013-11-28T04:37:31.137 回答