6

SQLiteOpenHelperクラスを延長しています。私のコンストラクタは

public MyDatabaseHelper(Context context) {
    super(
        context,         // ???
        "MyDatabase.db", // Database name
        null,            // Cursor factory
        1                // database version
    );
}

SQLiteOpenHelper コンストラクターはコンテキスト情報で何をしますか?

私のアプリケーションでは、コンストラクターはプログラムの状態 (コンテキスト) に関係なく同じように動作します。将来の問題なしにコンテキストに null を渡すことはできますか?

4

1 に答える 1

6

null 値を指定すると、代わりにメモリ内データベースが作成されますが、適切に処理されるように、データベース名パラメーターにも null を指定する必要があります。

これは、コンテキストのコンストラクターのドキュメントに記載されています

データベース ファイルのデータベース名を開くか作成するために使用するコンテキスト、またはメモリ内データベースの場合は null

また、SQLiteHelper クラス自体のソース コードを表示すると、mName 値を使用して mContext を使用するかどうかを決定していることがわかります。ここでソース コードをオンラインで表示します。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.4_r1.2/android/database/sqlite/SQLiteOpenHelper.java#SQLiteOpenHelper.0mContext

于 2012-06-22T01:49:21.847 に答える