-3

データベース ヘルパー インスタンスを保持する静的クラスを作成しても、そのクラスをどこでインスタンス化すればよいかわかりません。また、クラスのインスタンスを 1 つだけ使用できるようにするにはどうすればよいでしょうか?

私が言いたかったのは、どのアクティビティで混乱していて、クラスを 1 つのインスタンスのままにするためにどのようにインスタンス化する必要があるかということです。

反対票の理由がわからない。

当初、私は

public class DbStaticClass {

    public static LinkDataHandler sqlDataHandler = null;
}

それが参加者の活動であるため、スプラッシュスクリーンで初期化しました。しかし、それは常に Sqllite db の複数のインスタンスを引き起こしました。したがって、私は混乱しています。どこでそれを行うのですか?

4

2 に答える 2

0

クラスのインスタンスを 1 つだけ使用できるようにするにはどうすればよいですか?

シングルトンを間違った方法で定義しているようです。シングルトン自体は、クラスのインスタンスが 1 つしか使用できないことを保証します。正しい方法は次のとおりです。

public class SQLiteBaseClass extends SQLiteOpenHelper {

    private static SQLiteBaseClass mInstance;

    private SQLiteBaseClass(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    public static SQLiteBaseClass getInstance(Context c) {
        if (mInstance == null) {
            mInstance = new SQLiteBaseClass(c);
        }
            return mInstance;
    }
 }

今、データベース操作を行う必要がある場所はどこでも、単に呼び出すだけですSqliteBaseClass.getnstance()

詳細な説明については、ここで私のブログエントリを読むことができます

于 2013-09-08T06:20:44.287 に答える