7

私は2つのアクティビティを持つアプリを持っています。

それらの 1 つは複数の値をリストし、もう 1 つは新しい値を DB に追加します。

SQLiteOpenHelper から拡張され、DB 接続、クエリなどを管理するクラスがあります。

さて、SQLiteOpenHelper のコンストラクターでは、新しい DB を作成する必要があるか、既存の DB を開く必要があるかを判断するために使用されるコンテキストを渡す必要があることを理解しています。

しかし、各アクティビティに SQLiteOpenHelper クラスのインスタンスが 1 つある場合、コンテキストは異なります。

これを回避する方法はありますか?

ありがとう。

4

3 に答える 3

6

アクティビティの代わりに、アプリケーションコンテキスト(.getApplication())を渡します。そうすれば、両方のインスタンスが同じコンテキストを使用してデータベースにアクセスします。

于 2012-11-09T12:37:46.587 に答える
2

Context異なる可能性がありますが、異なる DB を作成することはできません。SQLiteOpenHelper コンストラクターにはname、DB ファイル名であるパラメーターがあります。Contextこれが存在する場合、渡されても作成されません。

于 2012-11-09T12:40:12.890 に答える