内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

ContentProvider-創(chuàng)新互聯(lián)

ContentProvider內(nèi)容提供者 ContentProvider

Android是基于Linux系統(tǒng),每個用戶有獨(dú)立的進(jìn)程,這些進(jìn)程之間是不能互相訪問的,如果有需要在各個用戶之間共享數(shù)據(jù),我們需要使用CotentProivder實現(xiàn)。另外,ContentProvider可以提供一個統(tǒng)一的接口使上層調(diào)用者不用關(guān)心數(shù)據(jù)存儲的細(xì)節(jié)問題。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的高坪網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

URI
content:// com.anjoyo.myfirstprovider/mitt/12
----A-----|-----------B--------------|--C--|D
A.標(biāo)準(zhǔn)前綴表明這個數(shù)據(jù)被一個內(nèi)容提供器所控制。
B.URI的權(quán)限部分;它標(biāo)識這個內(nèi)容提供器。對于第三方應(yīng)用程序,這應(yīng)該是一個全稱類名以確保唯一性。權(quán)限在<provider>元素的權(quán)限屬性中進(jìn)行聲明:

<providerandroid:name=".MyContentProvider"
    android:authorities="com.anjoyo.myfirstprovider"/>

C.用來判斷請求數(shù)據(jù)類型的路徑。這可以是0或多個段長。這個分段可以沒有。
D.被請求的特定記錄的ID,如果有的話。這是被請求記錄的_ID數(shù)值。如果這個請求不局限于單個記錄, 這個分段和尾部的斜線會被忽略。

-----------
每一個ContentProvider都擁有一個公共的URI,這個URI用于表示這個ContentProvider所提供的數(shù)據(jù)。
Android所提供的ContentProvider都存放在android.provider包當(dāng)中。

-----------
ContentProvider的函數(shù)
query() 查詢
insert() 插入
update() 更新
delete() 刪除
getType() 得到數(shù)據(jù)類型
onCreate() 創(chuàng)建時的回調(diào)函數(shù)
------------
實現(xiàn)ContentProvider過程
1.定義一個類,繼承ContentProvider
2.定義一個CONTENT_URI常量
3.實現(xiàn)query,insert,update,delete,getType和onCreate方法
4.在AndroidManifest.xml中聲明

---------------
Uri insertedUri = ContentUris.withAppendedId(uri, rowId);
重新構(gòu)建一個URI對象,如果uri是content://contacts/people,
rowId是45。重新構(gòu)建的URI是content://contacts/people/45
getContext().getContentResolver().notifyChange(insertedUri, null);
notifyChange()方法則用來通知注冊在此URI上的觀察者(observer)數(shù)據(jù)發(fā)生了改變。最后返回刪除或修改數(shù)據(jù)的行數(shù)。

ContentUris是Uri的工具類。其主要方法有:
1):把id拼接到Uri上,然后生成新的Uri
Uri insertUri = ContentUris.withAppendedId(uri,id);
2)解析Uri的id部分
long id = ContentUris.parseId(uri);

另外:uri有個方法是getPathSegments()是獲取uri的每一部分,返回值是List<String>

List<String> list = uri.getPathSegments();
System.out.println(list);
String idstr = list.get(list.size()-1);
long id = Long.parseLong(idstr);
//等價于下邊代碼
long id = ContentUris.parseId(uri);

-------------------------

如何訪問ContentProvider?
step1.獲取ContentResolver對象
ContentResolver cr = mContent.getContentResolver();
Cursor c = cr.query(Uri,...);
Uri insertedUri = cr.insert(Uri,...);
...

SqliteQueryBuilder使用。它是在查詢時候,可以靈活添加查詢條件。不能執(zhí)行添加更新等操作。

@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {
    SQLiteQueryBuilder builder= new SQLiteQueryBuilder();
switch (uriMatcher.match(uri)) {
case PERSONS:
        builder.setTables("mitt_tb");
break;
case PERSON:
        builder.setTables("mitt_tb");
long id = ContentUris.parseId(uri);
//添加查詢條件        builder.appendWhere("id="+id);
break;
    }
    SQLiteDatabase db= helper.getReadableDatabase();
    Cursor c= builder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
return c;
}

文章名稱:ContentProvider-創(chuàng)新互聯(lián)
標(biāo)題來源:http://www.rwnh.cn/article22/csjecc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、App開發(fā)企業(yè)建站、微信公眾號、網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
苍南县| 汝城县| 宣威市| 赞皇县| 铜川市| 桂林市| 衡阳县| 新宁县| 新巴尔虎左旗| 盐边县| 岚皋县| 清水河县| 南通市| 汉沽区| 高唐县| 赤壁市| 枣强县| 禄丰县| 乌什县| 湘阴县| 新丰县| 饶河县| 迁安市| 和平区| 永登县| 永康市| 鹤壁市| 鄯善县| 黄骅市| 青田县| 青浦区| 抚州市| 安图县| 安溪县| 乐平市| 涟源市| 赫章县| 松溪县| 金溪县| 龙陵县| 镇安县|