編輯: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
下面是一些查詢的例子:
微軟已經推送了Android版Outlook.com軟件的更新。v7.8.2版Outlook.com此次帶來最大的變化就是加入了全新的服務器端搜索功能。換句話說,用戶即便
想要理解ContentProvider的最佳方式就是自己動手去嘗試一下。下面介紹如何使用一個內置的Contacts ContentProvider。1. 創建一個工程,P
Android Studio 默認編輯器(Editor)的方案(Scheme)是無法修改字體的, 可以Save as, 保存為新的方案(Scheme), 然後更改字體大小
Search (搜索)是Android平台的一個核心功能之一,用戶可以在手機搜索在線的或是本地的信息。Android平台為所有需要 提供搜索或是查詢功能的應用提供了一個