可以利用getcontentresolver()
獲取contentresolver
.contentresolver
中提供了一系列方法用於對資料進行crud操作.
通過getcontentresolver()
獲取contentresolver
的例項,contentresolver
中提供了一系列方法用於對資料進行crud操作.
其中 1.insert() 用於新增
2.update() 用於更新
3.delete() 用於刪除
4.query() 用於查詢
contentresolver
中的crud操作是不接受表名引數的,而是使用乙個uri
引數代替。該引數被稱為內容uri
,由兩部分組成:authority和path。
內容uri
標準寫法:
content://com
.example
.provider/table1
需要將內容uri
解析成uri
物件才可以作為引數傳入
cursor cursor=getcontentresolver().query(uri,projection,selection,selectionargs,orderby);
其它操作與之類似,也和sqlite中的操作相像。
可以extends contentprovider
,需要覆蓋父類的6個方法.
1.public boolean oncreate()
:初始化contentprovider時呼叫,完成對資料庫的建立和公升級,返回true則表示contentprovider初始化成功,返回false表示失敗。注意:只有存在contentresolver
嘗試訪問該程式中的而資料時,contentprovider才會初始化。
2.public cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder)
:從contentprovider中查詢資料。使用uri
引數來確定查詢哪一張表,projection
用於確定查詢哪些列,selection
和selectionargs
用來約束查詢內容,sordoreder
引數用於對結果進行排序,查詢結果放在cursor
中返回。
3.public uri insert(uri uri, contentvalues values)
:向contentprovider
中新增一條資料。
4.public int delete(uri uri, string selection, string selectionargs)
:從contentprovider
中刪除資料。
5.public int update(uri uri, contentvalues values, string selection, string selectionargs)
:更新資料
6.public string gettype(uri uri)
:根據傳入的內容uri來返回相對應的mime型別。
乙個內容uri對應的mime字串由三部分組成:
1.必須以vnd開頭。
2.如果內容uri以路徑結尾,則後街androi.cursor.dir/
,如果內容uri以id結尾,則後接android.cursor.item/
。
3.最後街上vnd..
因為所有的crud操作都一定要匹配到相應的內容uri格式才能進行,所以我們可以控制外部程式能夠獲得的儲存內容。
跨程式共享資料
想要實現跨程式共享資料需要用到內容提供器,內容提供器給別的應用提供了訪問介面,可以新建乙個類去繼承contentprovider來建立乙個自己的內容提供器。contentprovider類中有6種抽象方法,在使用子類繼承的時候需要全部重寫。1 public class myprovider exte...
跨應用程式的session共享
常常有這樣的情況,乙個大專案被分割成若干小專案開發,為了能夠互不干擾,要求每個小專案作為乙個單獨的web應用程式開發,可是到了最後突然發現某幾個小專案之間需要共享一些資訊,或者想使用session來實現sso single sign on 在session中儲存login的使用者資訊,最自然的要求是...
跨域共享cookie和跨域共享session
的父網域名稱.cookie4可以被提交,因為domain和cookie都嚴格保持一致.這裡需要注意的是,在瀏覽器看來.www.vinceruan.info不是blog.vinceruan.info 的父網域名稱,而vinceruan.info才是blog.vinceruan.info的父網域名稱,w...