このトピックに関していくつかの質問がありましたが、databaseHelperの単一または複数のインスタンスが存在する必要があるかどうかについての確固たる理由を示すものはありません。DatabaseHelperのインスタンスを複数持つのはいつが良い考えであり、そうでないのはいつですか。複雑さが少ない(実際にそうであれば)インスタンスを1つだけにするのに十分な理由はありますか?
質問する
1396 次
2 に答える
5
あなたDatabaseHelper
は確かにシングルトンでなければなりません。各ヘルパーは、データベースへの単一の接続を維持します。同じデータベースに接続している複数のヘルパーがある場合、同時実行の問題が発生します。Sqliteは、データベースへの適切な同時アクセスを保証するために、単一の接続の下で独自のロックを行うため、すべてのデータベース操作にその単一の接続(したがってその単一のヘルパー)を使用することが推奨され、必要です。
于 2012-07-19T16:08:41.207 に答える
0
アプリケーションのデータベースごとに1つのDatabaseHelperを使用します。SQLiteは、SQLiteDatabaseでJavaロックを使用してファイルロック(多くの読み取り、1回の書き込みのみ)とAndroidを処理します。ただし、それでも同時実行エラーが発生する可能性があります(同時接続が一度に書き込まれます)。避けたいのは複数の接続部分であり、それがDatabaseHelperの1つのインスタンスによって管理されます。
于 2012-07-19T16:30:07.243 に答える