2011-08-12 55 views
2

這個想法是在整個應用程序中只使用一個連接,因爲幾乎每次都會使用它。 是否有可能獲得SQLiteDatabase並將其變爲一個全局變量以在整個應用程序中使用?是否有可能將SQLiteDatabase變成全局變量?

我應該遵循哪種方式來做到這一點?

Thx提前。

+0

多線程應用程序? –

回答

2

這兩個當前的答案說同樣的事情,他們是100%正確的,但也許不能解釋整個事情。 在android框架中,應用程序類是您可以放置​​全局可訪問的任何變量和數據的位置。 http://developer.android.com/reference/android/app/Application.html

通過任何可以調用getApplication()的活動,它將返回您創建的應用程序實例。

因此,您可以通過在應用程序中添加公共方法來使數據庫可用。

在你這樣做到底:

SQLiteDatabase myDatabase = getApplication().getDatabase(); 

然後在您的應用程序類,你會填寫getDatabase()方法。

稍微好一些的方法可能是創建一個管理數據庫的類,並使該類成爲應用程序的成員。這可以讓你在一個類中封裝所有開放的cloase和業務數據庫。然後,您可以使用應用程序類的方法從查詢等回傳遊標。

+0

像做一個dbHelper並將其引用到應用程序中? – JLFerrari

+0

對 - 這就是主意。 O'Reilly編寫的「學習Android」一書構建了一個涵蓋這種特定方法的示例應用程序。 以下是該書源代碼的鏈接: http://examples.oreilly.com/0636920010883/ 查看YambaApplication類和StatusData類。 或者當然也可以拿到這本書.http://oreilly.com/catalog/0636920010883 –

0

您可以將數據庫的連接和訪問權限放入應用程序類中。這將允許您創建一個數據庫連接單例,這個單例在整個程序中都可用。

0

有兩種方法可以做到這一點,創建一個自定義Application類或使用Singleton

+0

...和ContentProvider。這種方式是Android風格的解決方案。 – FeelGood