[英]Android. Content provider or Database?
如果使用ContentProvider
或Database
更好,我在這個問題上有點困惑。 或者,如果我不想與其他應用程序共享任何數據,則沒有任何區別。
如果我理解正確,內容提供商基於SQLite
並且它們的內容也可能只能訪問我的應用程序。
你能解釋一下嗎?
非常感謝你,
穆爾
當然,提供商是一個解決方案的有價值的問題,特別是對於跨應用程序數據發布。 例如,您需要使用內容提供商向快速搜索框提供搜索建議。
但是,對於應用程序內部使用,我不是粉絲。 成本(例如,靈活性降低,額外開銷)超過了恕我直言的好處。
如果您確實實現了內容提供程序,請記住默認情況下其他應用程序可以訪問它們。 您需要在<provider>
元素中包含android:exported="false"
,以使其對您的應用程序保密。
使用內容提供商將為您提供更加模塊化的設計,如果您將來希望從其他應用程序獲取數據,則可以讓您的生活更輕松。 如果您確定只需要從一個應用程序獲取數據,那么您也可以直接在數據庫上運行。
您應該注意一個特定的SQLite限制,那就是SQLite只是單用戶。 這實際上意味着您需要保護您的數據庫不會同時從多個線程訪問。 這在內容提供者中通常不是問題,因為它們幾乎總是具有單線程實現。
使用內容提供商的原因在這里 。
綜上所述:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.