2013-02-24 30 views
6

我讀從Android的內容提供商的官方文檔,我已經看到了這一點:我應該使用內容提供者嗎?

確定是否需要內容提供商。

你需要建立一個內容提供商 如果要提供以下一項或多項特徵:

  • 你想複雜的數據或文件提供給其他應用程序。
  • 您希望允許用戶將複雜的數據從您的應用複製到其他 應用中。
  • 您想使用搜索框架提供自定義搜索建議。
  • 如果 的使用完全位於您自己的應用程序中,則不需要提供者使用SQLite數據庫。

我開發同步後臺數據時的位置通過IntentService變化的應用程序。

我所看到的是,使用ContentProvider,您可以觀察到何時數據發生變化,而我真正需要的卻不需要用戶注意。它在IntentService和MainActivity中發生了變化,並且在它被通知時,佈局內容發生變化

使用ContentProvider雖然他們甚至沒有提到這是一個好主意嗎?

感謝

+0

[何時使用內容提供者]的可能重複(http://stackoverflow.com/questions/4936712/when-to-use-a-content-provider) – 2014-01-08 15:03:00

回答

13

就個人而言,我一直在用我的所有項目在過去的一年半ContentProviders。它們提供良好的,與數據庫無關的數據抽象來訪問您的數據。它們非常靈活,我甚至有一個播放項目,其中一個URI指向SharedPreference,而其他所有用於訪問數據庫表的目錄。 ContentProviders也允許您使用已經構建的框架基礎設施,例如CursorLoaders。通過接口和抽象類實現你自己並不難,但它可能很耗時且容易出錯,只能利用已經過測試和測試的工作是一大優勢。

順便說一句,我記得大約兩週前在谷歌的一篇文章中有同樣的確切問題,Cyril Mottier給出了非常好的答案。你可以閱讀它here