ContentProvider 筆記

ContentProvider介紹

contentProvider即內容,數據的提供者,用來做不同應用之間的數據共享,也對數據存儲和邏輯之間有很好的解耦作用
介紹一下ContentProvider的方法

public boolean onCreat();

該方法在ContentProvider創建後會被調用,當其他應用程序第一次訪問或 本應用打開時ContentProvider會被創建,且這兩個條件互斥,只要ContentProvider被創建,就不會再被創建;除非它所在的應用進程關閉,ContentProvider纔會關閉;

當由A應用訪問創建B應用的ContentProvider時,B應用的Application會被啓動,且ContentProvider的OnCreate()方法先被調用
另外還有 insert(),delete(),update(),query()方法;

public Cursor query (Uri uri, String[] project,String selection, String[] selectionArgs, String sortOrder);
project: 表示選擇出指定的數據列[列表名,列表名,…]

Uri簡介

一個Uri: content://com.xing.provider/word
content:暴露與訪問ContentProvider的協議默認是content://
com.xing.provider: 這個是Manifest配置裏面的authorities;系統也是通過authorities來找到一個ContentProvider, 可以理解爲一個ContentProvider的標識
word: 資源部分

一般來說ContentProvider是單例模式,多個程序調用只會產生一個ContentProvider處理數據

配置contentProvider

< provider
android:name=”com.xing.providerdemo.FirstContentProvider”
android:authorities=”com.xing.providerdemo.firstprovider”
android:permission=”com.xing.provider”
android:exported=”true”>
< /provider>
expored:指定ContentProvider是否允許其他應用調用
permission: 指定調用ContentProvider得有調用權限

< !– 數據庫權限 –>
< uses-permission android:name=”com.xing.provider”/>
< permission
android:name=”com.xing.provider”
android:protectionLevel=”normal”>
< /permission>
這兩個一起寫一個自定義權限纔會生效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章