日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 面试题之ContentProvider使用+实例

發布時間:2023/12/31 Android 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 面试题之ContentProvider使用+实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 一般來說ContentProvider是單例模式,多個應用可通過ContentResolver調用ContentProvider的增刪改查操作數據,ContentResolver調用的數據操作會讓同一個ContentProvider處理。

四、創建ContentProvider

1、創建一個類讓其繼承ContentProvider,并重載6個函數

需要實現的主要方法是:

  • 「insert()」「delete()」「update()」「query()」:用于對數據集的增刪改查操作。

  • 「onCreate()」:一般用來初始化底層數據集和建立數據連接等工作

  • 「getType()」:用來返回指定Uri的MIME數據類型,

  • 若Uri是單條數據,則返回的MIME數據類型以vnd.Android.cursor.item開頭;

  • 若Uri是多條數據,則返回的MIME數據類型以vnd.android.cursor.dir/開頭。

數據訪問方法**「如insert(Uri,ContentValues)和update(Uri,ContentValues,Bundle)」** 可以同時從多個線程調用,并且必須是線程安全的。其他方法**「如onCreate()」** 僅從應用程序主線程調用,并且必須避免執行冗長的操作。請參閱其預期線程行為的方法描述。

2、聲明Uri規則,實現UriMatcher

咱先來看看UriMatcher是干嘛的,UriMatcher本質上是一個文本過濾器,有助于解析Uri,用在ContentProvider中幫助我們過濾,分辨出查詢者想要查詢哪個數據表。

UriMatcher的構造函數中,UriMatcher.NO_MATCH是Uri無匹配時的返回代碼,值為-1。addUri()方法用來添加新的匹配項,語法為:

public?void?addUri(String?authority,?String?path,?int?code)

  • authority表示匹配的授權者名稱;

  • path表示數據路徑;

  • code表示返回代碼。

下面咱搞個實例:

//這里的名稱必須與AndroidManifest.xml中android:authorities保持一致

public?static?final?String?AUTHORITY?=?“com.scc.userprovider”;

//數據路徑

public?static?final?String?PATH_USERS?=?“user”;

//訪問ContentProvider的URL

public?static?final?Uri?CONTENT_URI?=?Uri.parse(“content://”?+?AUTHORITY?+?“/”?+?PATH_USERS);

//返回代碼

public?static?final?int?USER_INFO?=?1;

//創建UriMatcher對象

private?static?UriMatcher?uriMatcher;

//創建靜態代碼塊

static?{

//實例化UriMatcher對象

uriMatcher?=?new?UriMatcher(UriMatcher.NO_MATCH);

//參數1:authority;參數2:路徑;參數3:自定義代碼

uriMatcher.addURI(UserInfoContent.AUTHORITY,?UserInfoContent.PATH_USERS,?USER_INFO);

}

3、注冊ContentProvider

在AndroidManifest.xml文件中的 application節點下使用標簽注冊。樣例:

<android:authorities=“com.scc.userprovider”

android:name=“.UserProvider”

android:exported=“true”/>

五、使用ContentProvider

1、通過insert()方法添加單條數據

ContentValues?cv?=?new?ContentValues();

cv.put(UserInfoContent._ID,?bean.get_id());

cv.put(UserInfoContent.USER_NAME,?bean.getName());

cv.put(UserInfoContent.USER_AGE,?bean.getAge());

cv.put(UserInfoContent.USER_UPDATE_TIME,?bean.getUpdate_time());

Uri?uri?=?getContentResolver().insert(UserInfoContent.CONTENT_URI,?cv);

Log.e(getClass().getName(),?“insert:”?+?uri);

  • 通過bulkInsert()方法添加多條數據

ContentValues[]?arrayValues?=?new?ContentValues[10];

//實例化每一個ContentValues…

int?count?=?getContentResolver().bulkInsert(UserInfoContent.CONTENT_URI,?arrayValues);

2、指定ID刪除單條數據

int?delete?=?getContentResolver().delete(UserInfoContent.CONTENT_URI,?“_id=12”,?null);

Log.e(getClass().getName(),?“delete(失敗返回-1):”?+?delete);

  • 通過selection語句刪除多條數據

String?selection?=?UserInfoContent._ID?+?“>12”;

int?result?=?getContentResolver().delete(UserInfoContent.CONTENT_URI,?selection,?null);

3、修改數據

UserInfoBean?bean?=?new?UserInfoBean(“蚩尤”,?32,?“12:00”);

ContentValues?cv?=?new?ContentValues();

cv.put(UserInfoContent.USER_NAME,?bean.getName());

cv.put(UserInfoContent.USER_AGE,?bean.getAge());

cv.put(UserInfoContent.USER_UPDATE_TIME,?bean.getUpdate_time());

getContentResolver().update(UserInfoContent.CONTENT_URI,?cv,?“_id=18”,?null);

4、查詢數據

Cursor?cursor?=?getContentResolver().query(UserInfoContent.CONTENT_URI,?null,?selection,?null,?null);

//循環取出游標指向的每條用戶記錄

while?(cursor.moveToNext())?{

UserInfoBean?user?=?new?UserInfoBean();

user.name?=?cursor.getString(cursor.getColumnIndex(UserInfoContent.USER_NAME));

user.age?=?cursor.getInt(cursor.getColumnIndex(UserInfoContent.USER_AGE));

總結

以上是生活随笔為你收集整理的Android 面试题之ContentProvider使用+实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 韩国三级hd中文字幕 | 免费h片网站| 亚洲国产欧美精品 | 午夜国产在线 | 日韩一区二区在线播放 | www国产精品内射熟女 | 欧美色久| jizzjizz8| 三级麻豆 | 中文字幕网址在线 | 欧美bbw视频| av大全免费 | 成人3d动漫在线观看 | 中文精品久久 | 91深夜视频 | 久视频在线 | 男女av网站| 成人黄色在线观看视频 | 欧美日韩中字 | 亚洲欧美中文日韩在线观看 | 免费播放片大片 | 日韩欧美中文字幕一区二区三区 | 国产色婷婷一区二区三区竹菊影视 | 爱看av在线 | 亚洲女人18毛片水真多 | 黄色国产免费 | av网站久久 | 欧美视频中文字幕 | 国产成人精品一区二区三区四区 | 日本黄色片 | 国内精品久 | 亚洲欧美综合在线观看 | 黄色女女| 国产一级在线 | 777av| 97成人精品| 久久99精品视频 | 久久综合福利 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 亚洲一区黄色 | 全黄毛片 | 91影院在线| 国产又爽又色 | 1000部国产精品成人观看 | 黄色综合网 | 日本一级黄色大片 | 亚洲精选中文字幕 | 少妇精品偷拍高潮白浆 | 激情亚洲天堂 | 国产中文 | 在线观看成人黄色 | 国产91在线免费 | 国产无遮挡又黄又爽 | 亚洲观看黄色网 | 成人av免费看 | 亚州中文| 游戏涩涩免费网站 | av天天有| 色婷婷激情av| 干极品美女 | 欧美性猛交xxxx乱大交俱乐部 | 亚洲一区二区黄片 | 日日夜夜免费精品 | 不良视频在线观看 | 一区二区在线视频免费观看 | 免费的理伦片在线播放 | 亚洲精品欧洲 | 亚洲第一国产视频 | 亚洲一区电影在线观看 | 射区导航| 无码精品一区二区三区在线播放 | 已满十八岁免费观看全集动漫 | 国产一区二区三区在线免费 | 欧美一区二区三区久久久 | 中国字幕一色哟哟 | 午夜777 | 天天久久久 | 黄色av网址在线 | 在线免费日韩av | 日韩av无码一区二区三区 | 日本中文在线播放 | 欧美做爰性生交视频 | 欧美日韩一区二区区 | 99久久99久久精品国产片桃花 | 91看片黄 | 免费av网址大全 | 欧美日日 | 你懂的网址在线观看 | 99久久久无码国产精品性青椒 | 国产女同视频 | 香蕉福利视频 | 九九热视 | 一个人在线观看www软件 | 亚洲一区二区91 | 亚洲精品成人久久 | a级片免费观看 | 这里只有精品视频在线观看 | 欧洲激情网 | 亚洲乱强伦 |