0

我有一個應用程序,它使用直接數據訪問它的數據庫。除了其他應用程序外,我沒有什麼可以暴露的。正如CommonsWare在SO上說的,「如果你沒有什麼可以暴露的 - 不要使用ContentProvider」。現在,我想添加小部件,以顯示一個表中的幾個字符串,存儲在數據庫中。我是否應該將直接訪問代碼重構爲ContentProvider模式?有沒有一種方法可以使用直接從窗口小部件訪問數據庫?有沒有辦法讓ContentProvider和直接訪問一個應用程序中的數據庫?是否可以在Android中使用ContentProvider並直接訪問數據庫?

+0

我已經打開了一個類似的問題,但在我的情況下,小部件應用程序是一個單獨的應用程序。所以建議的答案是不適用的。 http://stackoverflow.com/questions/8403569/is-it-possible-to-use-contentprovider-and-direct-data-access-to-database-in-andr – Thierry

回答

1

現在,我想添加小部件來顯示一個表中的幾個字符串,存儲在數據庫中。

我將假設通過「小部件」,你的意思是「應用小部件」。

我應該重構直接訪問代碼到ContentProvider模式嗎?

您不必因爲您正在編寫應用程序小部件而這樣做。

有沒有辦法直接訪問數據庫的小部件?

當然,使用您在應用程序中其他任何位置使用的相同機制。

有沒有一種方法可以在一個應用程序中同時擁有ContentProvider和直接訪問數據庫?

是的,但你必須要小心一點,以確保您使用的是相同的SQLiteDatabase對象在這兩種情況下,這樣你就不會遇到線程問題。

相關問題