2011-08-12 12 views
2

アイデアは、ほぼ毎回使用されるため、APP全体で1つの接続を使用することです。 SQLiteDatabaseを取得し、アプリケーション全体で使用するグローバル変数に変換することは可能ですか?SQLiteDatabaseをグローバル変数に変換することはできますか?

私はこれを行うためにどのように従うべきですか?

Thxです。

+0

マルチスレッドアプリケーション? –

答えて

2

現在の2つの回答は同じことを言っていますが、100%正しいですが、すべてを説明していない可能性があります。 アンドロイドフレームワークでは、Applicationクラスは、グローバルにアクセス可能な変数とデータを配置する場所です。

任意のアクティビティから、getApplication()を呼び出して、作成したアプリケーションインスタンスを返します。

したがって、アプリケーションにパブリックメソッドを追加することで、データベースを利用できるようにすることができます。次に、あなたのApplicationクラスにあなたがgetDatabase()メソッドを記入します

SQLiteDatabase myDatabase = getApplication().getDatabase(); 

:最後に

はあなたのような何かをしたいです。

データベースを管理するクラスを作成し、そのクラスをアプリケーションのメンバにすることが、ほんの少し良い方法です。これにより、開いているクローゼットやビジネスをすべて1つのクラスにまとめることができます。次に、アプリケーションクラスのメソッドを使用して、クエリなどからカーソルを戻すことができます。

+0

dbHelperを実行してアプリケーションに参照するのが好きですか? – JLFerrari

+0

右 - これがアイデアです。 O'Reillyの "Learning Android"という本は、この特定のアプローチをカバーするサンプルアプリケーションを構築しています。 その書籍のソースコードへのリンクは次のとおりです。 http://examples.oreilly.com/0636920010883/ YambaApplicationクラスとStatusDataクラスを見てください。 もちろん、本も入手してください.http://oreilly.com/catalog/0636920010883 –

0

DBの接続とアクセスをApplicationクラスに配置できます。これにより、プログラム全体で利用可能なDB接続シングルトンを作成することができます。

0

これを行うには、カスタムApplicationクラスを作成するか、Singletonを使用する2つの方法があります。

+0

...およびContentProvider。この方法はAndroidスタイルのソリューションです。 – FeelGood

関連する問題