Content Provider的使用時機有兩種
一種是當你想要使用別人提供的資料
另一種是你想要提供資料讓別人使用

在使用的範圍有
a. 分享你的app資料給其他的app
b. 將資料送到widget
c. 使用SearchRecentSuggestionsProvider自訂搜尋建議
d. 使用AbstractThreadedSyncAdapter將資料同步到server
e. 使用CursorLoader把資料呈現在UI上面

頁面上的使用流程
Activity或Fragment使用CursorLoader然後再對ContentResolver
之後聯繫ContentProvider去存取Data storage

在要讀取資料時
首先要使用對應的資料權限
在設計時要注意避免SQL injection的攻擊
基本上的使用就像在SQLite上面再包一層存取

三種替代的存取模式
a. 批次存取Batch access:
建立一系列 ContentProviderOperation 物件
然後使用 ContentResolver.applyBatch()
b. 非同步查詢Asynchronous queries:
使用CursorLoader來達到存取
c. 透過意圖存取資料Data access via intents:
透過送intent給provider的app, 讓該app來對資料做存取
即使沒有存取權限, 也可以透過包含URI的intent
來達到暫時的效果, 這只有在接收的Activity結束之前有效
讀取權限: FLAG_GRANT_READ_URI_PERMISSION
寫入權限: FLAG_GRANT_WRITE_URI_PERMISSION

 

1. 官網https://developer.android.com/guide/topics/providers/content-provider-basics.html

01.png  

文章標籤

Android Content Provider base

全站熱搜

RX1226 發表在 痞客邦 留言(0) 人氣()