Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> 詳解Android中的ContentProvider和Uri

詳解Android中的ContentProvider和Uri

編輯:Android開發教程

一、使用ContentProvider(內容提供者)共享數據

ContentProvider在android中的作用是對外共 享數據,也就是說你可以通過ContentProvider把應用中的數據共享給其他應用訪問,其他應用可以通過 ContentProvider對你應用中的數據進行添刪改查。關於數據共享,以前我們學習過文件操作模式,知道通過 指定文件的操作模式為Context.MODE_WORLD_READABLE或Context.MODE_WORLD_WRITEABLE同樣也可以對外共享 數據。那麼,這裡為何要使用ContentProvider對外共享數據呢?是這樣的,如果采用文件操作模式對外共享 數據,數據的訪問方式會因數據存儲的方式而不同,導致數據的訪問方式無法統一,如:采用xml文件對外共 享數據,需要進行xml解析才能讀取數據;采用sharedpreferences共享數據,需要使用sharedpreferences API讀取數據。

使用ContentProvider對外共享數據的好處是統一了數據的訪問方式。

當應用需要通過 ContentProvider對外共享數據時,第一步需要繼承ContentProvider並重寫下面方法:

public 

class PersonContentProvider extends ContentProvider{
public boolean onCreate()
public Uri insert(Uri uri, ContentValues values)
public int delete(Uri uri, String selection, String[] selectionArgs)
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, 

String sortOrder)
public String getType(Uri uri)
}

第二步需要在AndroidManifest.xml使用<provider>對該ContentProvider進行配置,為了能 讓其他應用找到該ContentProvider ,ContentProvider采用了authorities(主機名/域名)對它進行唯一標 識,你可以把ContentProvider看作是一個網站(想想,網站也是提供數據者),authorities 就是他的域名 :

<manifest.... >
<application android:icon="@drawable/icon" android:label="@string/app_name">
<provider android:name=".PersonContentProvider"
android:authorities="com.ljq.providers.personprovider"/>
</application>
</manifest>

二、Uri介紹

Uri代表了要操作的數據,Uri主要包含了兩部分信息:1》 需要操作的ContentProvider ,2》對ContentProvider中的什麼數據進行操作,一個Uri由以下幾部分組成:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved