我是新的android應用程序開發,並在學習基本的android組件時,我意圖和內容提供者之間感到困惑,因爲兩者都被用於將數據從一個應用程序/組件發送到另一個應用程序/組件。在意圖的情況下,我們可以使用捆綁或額外發送數據,爲什麼我們使用內容提供商。有人能用一個例子來解釋我嗎?
我們也可以只使用內容提供者訪問android中的數據庫,這是我們使用內容提供者的唯一原因嗎?意圖vs內容提供者在android
回答
兩者都被用於從一個應用/組件將數據發送到另一應用/組件
不是真的。
有四個組件中的Android:
Activity
Service
BroadcastReceiver
ContentProvider
一個Intent
是無那些。 Intent
是涉及當我們開始一個活動,開始或綁定到一個服務,或發送廣播。然而,比較Intent
與ContentProvider
類似於將鏟與靴子進行比較,認爲兩者都可用於攜帶污物。雖然是真的,但通常一個啓動是涉及攜帶污垢,但攜帶污垢的實際手段是由別的東西,如獨輪車處理。
如果有意圖,我們可以使用捆綁或附加功能發送數據,那麼爲什麼我們要使用內容提供者。
我們經常針對不同的情況使用不同的工具。例如,你會發現在漁網中攜帶水很困難。
每個四個分量都具有不同的作用,特別是在關係到進程間通信(IPC):
一種
Activity
驅動散裝我們的用戶界面,包括啓動從其他應用的活動(或有我們的活動之一,由其他應用程序啓動)一個
Service
存在邏輯上從用戶界面分離再運行的操作,包括由其他應用程序實現的服務工作(或有其他應用程序與服務合作您發佈)一個
BroadcastReceiver
是一個發佈/訂閱消息系統,讓你將消息發送到任意訂戶,或訂閱來自任意發件人的郵件,跨進程邊界一個
ContentProvider
是批量數據傳輸,無論是在一個數據庫式結構的形式(行和列)或以流的形式,特別是用於與其他應用程序的工作
也可以我們訪問數據庫I n android只使用內容提供者
否。畢竟,如果這是真的,那麼訪問數據庫將是不可能的。 A ContentProvider
不會出現魔法。它必須由程序員編寫。如果ContentProvider
只能通過ContentProvider
訪問數據庫,那麼我們會遇到問題。
這就是我們使用內容提供商的唯一原因嗎?
否。除了提供數據庫式API之外,ContentProvider
還可以發佈流。這對於獲取應用程序之間的任意數據非常重要,例如使PDF附件可用於PDF查看器的電子郵件客戶端。
意圖是用於發送/接收事務性命令和數據的消息體系結構。內容提供者是存儲數據的抽象接口,用於創建,更新,刪除和同步操作。
和數據庫呢? –
數據庫(例如,內置在sqllite數據庫中的android)是數據的一種存儲機制。內容提供者可以使用數據庫,文件存儲或其他存儲機制。內容提供者接口允許您從應用程序或其他應用程序的其餘部分抽象出該存儲機制。 –
- 1. 內容提供者vs ORM
- 2. android內容提供者的使用者
- 3. 內容提供者
- 4. Android - 內容提供者查詢光標
- 5. android內容提供者權限
- 6. android videoView java.io.filenotfoundexception沒有內容提供者
- 7. android自定義內容提供者
- 8. 默認啓動內容提供者Android
- 9. Android。內容提供者或數據庫?
- 10. Android的內容提供者由Kotlin提供
- 11. android意圖vs觀察者
- 12. 如何解決在android內容提供者中找不到的內容提供者url?
- 13. Android內容提供者 - 在插入方法內更新
- 14. android:內容提供者:服務崩潰凝視 - 無法獲取提供者sensordata.collector.SurveyDbProvider
- 15. Android內容提供者*不是*在Android中?
- 16. 使用意圖的Android聯繫人內容提供商
- 17. 內容提供者和內容觀察者示例?
- 18. 內容提供者和內容觀察者同步
- 19. 存儲在Android項目中的內容提供者在哪裏?
- 20. Android內容提供商測試的真正內容提供商
- 21. Android數據訪問設計模式:內容提供者vs存儲庫
- 22. android內容提供商
- 23. Android內容提供商
- 24. 如何在android內容提供者中存儲大塊?
- 25. Android - 嘗試在內容提供者中添加值時失敗
- 26. 在android中保護/限制內容提供者
- 27. 在Android API級別23上訪問UserDictionary內容提供者
- 28. 在Android中查詢現有內容提供者的DISTINCT記錄
- 29. 在Android中使用group by和內容提供者計數
- 30. 如何在Android上查詢UserDictionary內容提供者?
完美的解釋,一行一行。非常感謝:) –
需要一點建議。我應該先學習什麼,內容提供者或android數據庫? –
@Shivamaggarwal:都不是。或者,更準確地說,想出一個真正的問題,然後學習你需要解決的問題。例如,如果您的問題涉及獲取聯繫人數據,則需要了解如何使用「ContentProvider」,因爲這是Android爲您提供聯繫人數據的方式。 – CommonsWare