0

SQLiteOpenHelper私は、拡張するクラスで1つのインスタンスのみを使用する方がよいことを読みましたApplication

public class MyApplication extends Application {

    private static SQLiteOpenHelper dBHelper;

    @Override
    public void onCreate() {
        super.onCreate();
        dBHelper = new DBHelper(this);
    }

    public static SQLiteDatabase getDB() {
        return dBHelper.getWritableDatabase();
    }
}

しかし、その場合、どこで閉じる必要がありますか?

ありがとう

7月

4

2 に答える 2

0

インスタンスは常に1つだけSQLOpenHelperにする必要があり、決して閉じないでください。より詳細な説明はここここにあります

于 2013-01-21T17:45:45.450 に答える
0

サブクラスのonTerminate()メソッドでデータベースを閉じることができます。Applicationアプリケーションが閉じられたデータベースを処理できる場合(再度開くことにより...)、メソッドをさらに閉じることができますonLowMemory()(ただし、これによって多くのメモリが解放されることはありません)。

さらに重要なのは、データベースカーソルの使用が終了したら、データベースカーソルを閉じることです。

編集

vmirnonovは正しく、onTerminate()エミュレーターでのみ呼び出されるため、回答のその部分は無視してください。

于 2013-01-21T17:51:35.370 に答える