跨程式共享資料

2021-08-13 03:05:02 字數 2569 閱讀 1206

想要實現跨程式共享資料需要用到內容提供器,內容提供器給別的應用提供了訪問介面,可以新建乙個類去繼承contentprovider來建立乙個自己的內容提供器。contentprovider類中有6種抽象方法,在使用子類繼承的時候需要全部重寫。

1

public

class myprovider extends

contentprovider

1213

/*14

查詢資料

15uri 確定查詢的是那一張表

16projection 查詢那一列

17selection 和 selectionargs查詢那些行

18sortorder 對結果進行排序

19返回的資料存放在cursor物件中

20*/

21@override

22public

cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder)

2526

/*27

根據傳入的資料uri來返回相應的mime型別

28*/

29@override

30public

string gettype(uri uri)

33/*

34新增資料

35uri 確定新增的是那一張表

36values 儲存待新增的資料

37返回一條表示這條新記錄的uri

38*/

39@override

40public

uri insert(uri uri, contentvalues values)

43/*

44刪除資料

45selection 和 selectionargs 刪除那些行

46返回被刪除的行數

47*/

48@override

49public

intdelete(uri uri, string selection, string selectionargs)

52/*

53更新已有的資料

54uri 確定更新的是那一張表

55values 新資料

56selection 和 selectionargs 更新那些行

57會返回更新的行數

58*/

59@override

60public

intupdate(uri uri, contentvalues values, string selection, string selectionargs)

6364 }

乙個標準的內容uri寫法是這樣的:

其中 * 表示任意長度的任意字元  # 表示任意長度的數字

然後使用urimatcher這個類實現匹配內容uri的功能,urimatcher中有乙個adduri()的方法,3個引數,可以分別把authority、path、和乙個自定義**,當呼叫urimatcher的match()方法是,將乙個uri傳入,返回值某個能夠匹配這個uri的自定義**。

修改後的**:

1

public

class myprovider extends

contentprovider

24...

25/*

26查詢資料

27uri 確定查詢的是那一張表

28projection 查詢那一列

29selection 和 selectionargs查詢那些行

30sortorder 對結果進行排序

31返回的資料存放在cursor物件中

32*/

33@override

34public

cursor query(uri uri, string projection, string selection, string selectionargs, string sortorder)

53...54}

5556

...57

58 }

insert()、update()、delete()也可以使用switch (urimatcher.match(uri))這樣的判斷語句判斷出希望訪問的是那張表,再進行相應的操作

gettype()方法是乙個所有的內容提供器都必須提供的乙個方法,用於獲取uri物件所對應的mime型別。

乙個內容uri所對應的mime字串主要由3部分組成,android的格式規定是:

1、必須以vnd開頭

2、如果內容uri以路徑結尾,則後接android.cursor.dir/,如果內容uri以id結尾,則後接android.cursor.item/

3、最後接上vnd..

實現gettype()方法的邏輯如下:

public

class myprovider extends

contentprovider

return

null

; }

}

跨程式共享資料

可以利用getcontentresolver 獲取contentresolver.contentresolver中提供了一系列方法用於對資料進行crud操作.通過getcontentresolver 獲取contentresolver的例項,contentresolver中提供了一系列方法用於對資料...

跨應用程式的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...