ContentProvider使用方法詳解
是四大組件之一,其本質上是一個標準化的數據管道,它屏蔽了底層的數據管理和服務等細節,以標準化的方式在 應用間共享數據。用戶可以靈活實現所封裝的數據存儲以及增刪改查等,所有的 必須實現一個對外統一的介面。
本篇文章主要介紹 開發中的部分知識點,通過閱讀本篇文章,您將收穫以下內容:
ContentProvider
獲取聯繫人信息的方法
獲取簡訊內容的方法
ContentResolver 內容解析者
ContentObserver 內容觀察者
ContentProvider ContentResolver ContentObserver 三者關係
我們不是牛逼的程序員,我們只是程序開發中的墊腳石。
我們不發送紅包,我們只是紅包的搬運工。
1. ContentProvider 實現ContentProvider 繼承關係
四大組件之一,必須在Androidmainfest.xml 中註冊
注意 : URI 中的元素
android:authorities="ProgramAndroid"
繼承 ContentProvider 實現增刪改查等方法
提供對外提供操作的資料庫方法
其他APK 訪問此ContentProvider 資料庫的方法
注意 :
// 此條添加上才ContentObserver可以監聽資料庫改變
getContentResolver().notifyChange(Uri.parse(uri),null);
至此,自定義的使用方法已經實現。
2. 獲取聯繫人信息的方法
系統自帶一下 ,比如 聯繫人
例如: 源碼 下的內容
Android 系統Provider.png
本段主要實現獲取系統聯繫人(ContactProvider)提供的一些信息
獲取聯繫人實現方法
ListView 顯示布局如下
item 布局如下:
注意: 獲取聯繫人需要許可權
至此,已經可以獲取並顯示聯繫人信息。
3.獲取簡訊內容的方法
簡訊內容數據也是系統提供的,獲取方法如下:
ListView 布局如下
item 布局如下:
4. ContentResolver 內容解析者
主要是通過調用獲取 提供的數據介面,進而進行增刪改查等操作。
5.ContentObserver 內容觀察者
內容觀察者通過指定 監聽數據是否改變。
自定義 ContentObserver 內容觀察者
1.註冊ContentObserver 內容觀察者 registerContentObserver
2.繼承 ContentObserver 實現 onChange方法
注意 :
// 此條添加上才ContentObserver可以監聽資料庫改變
getContentResolver().notifyChange(Uri.parse(uri),null);
至此自定義內容觀察者已經實現完成
調用ContentObserver 監聽簡訊數據改變
6. ContentProvider ContentResolver ContentObserver 三者關係
三者關係圖如下
關係圖.png
至此,本篇已結束,如有不對的地方,歡迎您的建議與指正。期待您的關注,
感謝您的閱讀,謝謝!


TAG:程序員Android |