Android開發(fā)筆記七

SQLite存儲(chǔ)學(xué)習(xí)

1暇检、特色:輕量級(jí)款熬、獨(dú)立深寥、隔離、跨平臺(tái)贤牛、多語言接口惋鹅、安全性

2、數(shù)據(jù)庫的增刪改查

創(chuàng)建數(shù)據(jù)庫:創(chuàng)建一個(gè)SQLiteOpenHelper類


DataBaseHelper兩個(gè)方法:dataBaseHelper.getWritableDatabase();

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dataBaseHelper.getReadableDatabase()

升級(jí)數(shù)據(jù)庫:

增加數(shù)據(jù):

查找:


Content Provider

1殉簸、應(yīng)用程序間共享數(shù)據(jù)的一種方式闰集;為存儲(chǔ)和獲取數(shù)據(jù)提供了統(tǒng)一的接口;Android中為常見的一些數(shù)據(jù)提供了默認(rèn)的Content Provider般卑;四大組件之一武鲁。

適用場(chǎng)景

1) ContentProvider為存儲(chǔ)和讀取數(shù)據(jù)提供了統(tǒng)一的接口

2) 使用ContentProvider,應(yīng)用程序可以實(shí)現(xiàn)數(shù)據(jù)共享

3) android內(nèi)置的許多數(shù)據(jù)都是使用ContentProvider形式蝠检,供開發(fā)者調(diào)用的(如視頻沐鼠,音頻,圖片蝇率,通訊錄等)

當(dāng)應(yīng)用繼承ContentProvider類迟杂,并重寫該類用于提供數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的方法,就可以向其他應(yīng)用共享其數(shù)據(jù)本慕。雖然使用其他方法也可以對(duì)外共享數(shù)據(jù)排拷,但數(shù)據(jù)訪問方式會(huì)因數(shù)據(jù)存儲(chǔ)的方式而不同,如:采用文件方式對(duì)外共享數(shù)據(jù)锅尘,需要進(jìn)行文件操作讀寫數(shù)據(jù)监氢;采用sharedpreferences共享數(shù)據(jù),需要使用sharedpreferences?API讀寫數(shù)據(jù)藤违。而使用ContentProvider共享數(shù)據(jù)的好處是統(tǒng)一了數(shù)據(jù)訪問方式浪腐。

Uri類簡(jiǎn)介

Uri uri = Uri.parse("content://com.changcheng.provider.contactprovider/contact")

在Content Provider中使用的查詢字符串有別于標(biāo)準(zhǔn)的SQL查詢。很多諸如select, add, delete, modify等操作我們都使用一種特殊的URI來進(jìn)行顿乒,這種URI由3個(gè)部分組成议街, “content://”, 代表數(shù)據(jù)的路徑,和一個(gè)可選的標(biāo)識(shí)數(shù)據(jù)的ID璧榄。以下是一些示例URI:

content://media/internal/images這個(gè)URI將返回設(shè)備上存儲(chǔ)的所有圖片

content://contacts/people/這個(gè)URI將返回設(shè)備上的所有聯(lián)系人信息

content://contacts/people/45這個(gè)URI返回單個(gè)結(jié)果(聯(lián)系人信息中ID45的聯(lián)系人記錄)

盡管這種查詢字符串格式很常見特漩,但是它看起來還是有點(diǎn)令人迷惑。為此骨杂,Android提供一系列的幫助類(在android.provider包下)涂身,里面包含了很多以類變量形式給出的查詢字符串,這種方式更容易讓我們理解一點(diǎn)搓蚪,因此蛤售,如上面content://contacts/people/45這個(gè)URI就可以寫成如下形式:

Uri person = ContentUris.withAppendedId(People.CONTENT_URI,??45);

然后執(zhí)行數(shù)據(jù)查詢:

Cursor cur = managedQuery(person, null, null, null);

2、Content provider 存取數(shù)據(jù)并使它對(duì)其它應(yīng)用程序可見. 它們是應(yīng)用程序間共享數(shù)據(jù)的唯一方法; 沒有其他的公有數(shù)據(jù)區(qū)域.

3、Content providers為數(shù)據(jù)跨進(jìn)程訪問提供了一套安全的訪問機(jī)制悴能,對(duì)數(shù)據(jù)組織和安全訪問提供了可靠的保證揣钦。

4、通過Content Providers訪問數(shù)據(jù)時(shí)搜骡,在應(yīng)用程序的上下文(Context)中使用ContentResolver對(duì)象最為客戶端(client)與provider進(jìn)行交互拂盯。ContentResolver對(duì)象通過實(shí)現(xiàn)抽象類ContentProvider的一個(gè)實(shí)例來訪問provider。Provider對(duì)象從客戶端(client)接收數(shù)據(jù)請(qǐng)求记靡,執(zhí)行請(qǐng)求操作并且返回請(qǐng)求結(jié)果谈竿。

5、在以下情況下你需要使用Content Providers:

? ? ? a你想為其他應(yīng)用程序提供復(fù)雜數(shù)據(jù)或文件摸吠;

? ? ? b你想允許用戶從你的應(yīng)用程序中拷貝復(fù)雜數(shù)據(jù)到其他的應(yīng)用中

? ? ? c你想使用搜索框架提供自定義的查詢建議功能

6空凸、Content Provider通過URI(統(tǒng)一資源定位符)來訪問數(shù)據(jù),URI可以理解為訪問數(shù)據(jù)的唯一地址寸痢,URI由authority和數(shù)據(jù)地址構(gòu)成呀洲,關(guān)于authority可以理解成網(wǎng)站地址中的主機(jī)地址,而數(shù)據(jù)地址可以理解成某一個(gè)頁面的子地址啼止,二者共同構(gòu)成了一個(gè)完整的訪問地址道逗。對(duì)于authority的命名還是有一定的規(guī)范性的。

7献烦、關(guān)于URI的格式:content:/<authority>/<path>/<id>/滓窍,path就是數(shù)據(jù)路徑,比如說一張表巩那,而id就是這張表中主鍵為id的一行吏夯,也可以理解成一個(gè)實(shí)體對(duì)象。

8即横、實(shí)現(xiàn)抽象類ContentProvider后噪生,有幾個(gè)需要實(shí)現(xiàn)的方法:

query()

Retrieve data from your provider. Use the arguments to select the table to query, the rows and columns to return, and the sort order of the result. Return the data as aCursorobject.

insert()

Insert a new row into your provider. Use the arguments to select the destination table and to get the column values to use. Return a content URI for the newly-inserted row.

update()

Update existing rows in your provider. Use the arguments to select the table and rows to update and to get the updated column values. Return the number of rows updated.

delete()

Delete rows from your provider. Use the arguments to select the table and the rows to delete. Return the number of rows deleted.

getType()

Return the MIME type corresponding to a content URI. This method is described in more detail in the sectionImplementing Content Provider MIME Types.

onCreate()

Initialize your provider. The Android system calls this method immediately after it creates your provider. Notice that your provider is not created until aContentResolverobject tries to access it.

簡(jiǎn)單的總結(jié)一些Content Providers:

1.Content Providers是Android系統(tǒng)中四大組件之一,提供一套在客戶端(client)和數(shù)據(jù)源(data source)之間的訪問接口

2.Content Providers可以提供跨進(jìn)程訪問數(shù)據(jù)的功能东囚,能暴露本地?cái)?shù)據(jù)給其他應(yīng)用訪問

3.實(shí)現(xiàn)Content Providers只需要繼承抽象類ContentProvider并實(shí)現(xiàn)必要的抽象方法即可跺嗽,訪問ContentProvider則根據(jù)URI來訪問

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市页藻,隨后出現(xiàn)的幾起案子桨嫁,更是在濱河造成了極大的恐慌,老刑警劉巖惕橙,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異钉跷,居然都是意外死亡弥鹦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彬坏,“玉大人朦促,你說我怎么就攤上這事∷ㄊ迹” “怎么了务冕?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)幻赚。 經(jīng)常有香客問我禀忆,道長(zhǎng),這世上最難降的妖魔是什么落恼? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任箩退,我火速辦了婚禮,結(jié)果婚禮上佳谦,老公的妹妹穿的比我還像新娘戴涝。我一直安慰自己,他們只是感情好钻蔑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布啥刻。 她就那樣靜靜地躺著,像睡著了一般咪笑。 火紅的嫁衣襯著肌膚如雪可帽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天蒲肋,我揣著相機(jī)與錄音蘑拯,去河邊找鬼。 笑死兜粘,一個(gè)胖子當(dāng)著我的面吹牛申窘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孔轴,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼剃法,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了路鹰?” 一聲冷哼從身側(cè)響起贷洲,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晋柱,沒想到半個(gè)月后优构,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雁竞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年钦椭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拧额。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彪腔,死狀恐怖侥锦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情德挣,我是刑警寧澤恭垦,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站格嗅,受9級(jí)特大地震影響番挺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吗浩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一建芙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懂扼,春花似錦禁荸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陷嘴,卻和暖如春映砖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灾挨。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工邑退, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人劳澄。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓地技,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親秒拔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子莫矗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容