在我的應用程序中,我爲一個數據庫實現了多個內容提供者,每個表有一個數據庫,因爲有很多表並且具有所有邏輯他們在一個單一的內容提供商將是相當混亂。當單個數據庫有多個內容提供者時尋址SQLiteOpenHelper的多個實例
我跟着這個鏈接通過廝磨給出的建議是:
Content provider for multiple tables
因此,有具有SQLiteOpenHelper成員變量抽象AbsShopContentProvider。這個抽象的內容提供者然後被多個內容提供者擴展,如Table1Provider,Table2Provider,...
所以現在我有一個每個內容提供者的SQLiteOpenHelper實例。這是否會造成關於線程安全的任何問題?
在我的抽象Content Provider中將此SQLiteOpenhelper變量設置爲「static」並僅在抽象提供程序的onCreate()中創建它的實例(僅當它爲null時)是個好主意嗎?它會解決有很多DB輔助對象的問題嗎?
將SQLiteOpenhelper做成一個懶惰的單例是一個好主意。 –
它會創建問題,如果你的數據庫連接是打開的,你會嘗試再次打開onnection它會拋出異常 – farrukh
okie ..但我認爲內容提供商將解決連接問題...雖然我還沒有嘗試過它是我自己!感謝這兩個答案....我現在將刪除靜態,而是實現我的SQLiteOpenHelper作爲一個單身......所以,當多個內容提供商訪問它,只有一個實例可用.. – shanti