アイデアは、ほぼ毎回使用されるため、APP全体で1つの接続を使用することです。 SQLiteDatabaseを取得し、アプリケーション全体で使用するグローバル変数に変換することは可能ですか?SQLiteDatabaseをグローバル変数に変換することはできますか?
私はこれを行うためにどのように従うべきですか?
Thxです。
アイデアは、ほぼ毎回使用されるため、APP全体で1つの接続を使用することです。 SQLiteDatabaseを取得し、アプリケーション全体で使用するグローバル変数に変換することは可能ですか?SQLiteDatabaseをグローバル変数に変換することはできますか?
私はこれを行うためにどのように従うべきですか?
Thxです。
現在の2つの回答は同じことを言っていますが、100%正しいですが、すべてを説明していない可能性があります。 アンドロイドフレームワークでは、Applicationクラスは、グローバルにアクセス可能な変数とデータを配置する場所です。
任意のアクティビティから、getApplication()を呼び出して、作成したアプリケーションインスタンスを返します。
したがって、アプリケーションにパブリックメソッドを追加することで、データベースを利用できるようにすることができます。次に、あなたのApplicationクラスにあなたがgetDatabase()メソッドを記入します
SQLiteDatabase myDatabase = getApplication().getDatabase();
:最後に
はあなたのような何かをしたいです。
データベースを管理するクラスを作成し、そのクラスをアプリケーションのメンバにすることが、ほんの少し良い方法です。これにより、開いているクローゼットやビジネスをすべて1つのクラスにまとめることができます。次に、アプリケーションクラスのメソッドを使用して、クエリなどからカーソルを戻すことができます。
dbHelperを実行してアプリケーションに参照するのが好きですか? – JLFerrari
右 - これがアイデアです。 O'Reillyの "Learning Android"という本は、この特定のアプローチをカバーするサンプルアプリケーションを構築しています。 その書籍のソースコードへのリンクは次のとおりです。 http://examples.oreilly.com/0636920010883/ YambaApplicationクラスとStatusDataクラスを見てください。 もちろん、本も入手してください.http://oreilly.com/catalog/0636920010883 –
DBの接続とアクセスをApplicationクラスに配置できます。これにより、プログラム全体で利用可能なDB接続シングルトンを作成することができます。
これを行うには、カスタムApplicationクラスを作成するか、Singletonを使用する2つの方法があります。
...およびContentProvider。この方法はAndroidスタイルのソリューションです。 – FeelGood
マルチスレッドアプリケーション? –