Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android開發入門(二十)內容提供者 20.1 數據共享

Android開發入門(二十)內容提供者 20.1 數據共享

編輯:Android開發教程

在上一章節中,我們介紹了數據持久化的幾種方法:首選項,文件,以及數據庫。在保存復雜的數據結構 時,推薦使用SQliteDatabase。但是,共享數據就成了一種挑戰,因為,數據庫只對創建它的程序包可用。

在這一章節中,將會介紹Android特有的數據共享方式:使用ContentProvider。也會介紹如何使用內 置的ContentProvider,以及創建自己的ContentProvider,以便在多個程序包之間共享數據。

在 Android中,共享數據的推薦方式是使用ContentProvider。可以把ContentProvider想想成一個數據商店。它 是如何存儲數據的,這和使用它的程序不相關。重要的是,如何通過編碼接口去獲取這些數據。

ContentProvider表現的非常像一個數據庫,你可以執行增刪查改操作。

然而,和數據庫不同 的是,它可以使用不同的方式去存儲數據。數據可以存放在數據庫中,文件中,甚至網絡上面。

Android提供了許多有用的ContentProvider,如下:

Browser  存儲浏覽器書簽,浏覽歷史等等。

CallLog   存儲未接來電,通話記錄等等。

Contacts 儲存聯系人詳情。

MediaStore 存儲媒體文件,比如音頻,視頻,圖片等。

Settings 存儲設備的一些配置信息。

除了這些內置的ContentProvider,也可以創建自己的ContentProvider。

想要查詢一個 ContentProvider,需要用URI的形式指定一個查詢字符串,指定某一行。URI查詢形式如下:

<standard_prefix>://<authority>/<data_path>/<id>

URI的組成 部分如下:

ContentProvider標准的前綴是 content://

authority指定了ContentProvider的名字。contacts就是內置Contacts 的ContentProvider的名字。對於 第三方的ContentProvider,這個authority可能就是一個完成的指定的名字,例如net.manoel.provider或 net.horsttnann.provider。

data_path指定了請求數據的類別。例如,如果你正在獲取Contacts ContentProvider中的所有聯系人, 那麼,data_path就應該是people,即URI會是這樣:content://contacts/people

id 指定了請求的記錄。例如,如果你在查找在Contacts ContentProvider中的2號聯系人,那麼URI會是 這樣:content://contacts/people/2

下面是一些查詢的例子:

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