輕松學(xué)Android開(kāi)發(fā)之Android數(shù)據(jù)存儲(chǔ)_第1頁(yè)
輕松學(xué)Android開(kāi)發(fā)之Android數(shù)據(jù)存儲(chǔ)_第2頁(yè)
輕松學(xué)Android開(kāi)發(fā)之Android數(shù)據(jù)存儲(chǔ)_第3頁(yè)
輕松學(xué)Android開(kāi)發(fā)之Android數(shù)據(jù)存儲(chǔ)_第4頁(yè)
輕松學(xué)Android開(kāi)發(fā)之Android數(shù)據(jù)存儲(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第8章 Android數(shù)據(jù)存儲(chǔ) 在應(yīng)用程序的開(kāi)發(fā)過(guò)程中,都會(huì)涉及到數(shù)據(jù)的輸入、輸出和保存。Android提供了以下幾種方式,供開(kāi)發(fā)者存取數(shù)據(jù):SharedPreferences存儲(chǔ)、文件存儲(chǔ)、SQLite數(shù)據(jù)庫(kù)存儲(chǔ)、ContentProvider。本章將詳細(xì)講解這幾種存儲(chǔ)方式。8.1 SharedPreferences輕量級(jí)存儲(chǔ) SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類。它用來(lái)存儲(chǔ)一些簡(jiǎn)單的Key-Value名值對(duì)。它的value值只能是int、long、boolean、String、float類型。在應(yīng)用程序中主要保存一些常用的配置信息。8.1.1 Shar

2、edPreferences和Editor SharedPreferences是一個(gè)接口。要獲取SharedPreferences的實(shí)例對(duì)象,需要調(diào)用context.getSharedPreferences(String name, int mode)方法。 name:如果該文件不存在,則會(huì)在調(diào)用SharedPreferences.Editor commit()方法后自動(dòng)創(chuàng)建。新建的文件保存在/data/data/項(xiàng)目包名/shared_prefs目錄下。8.1.2 使用SharedPreferences存儲(chǔ)數(shù)據(jù) 使用SharedPreferences存儲(chǔ)數(shù)據(jù)的步驟如下: 調(diào)用context.g

3、etSharedPreferences(String name, int mode)方法獲取SharedPreferences對(duì)象; 利用SharedPreferences.Editor edit()方法獲取Editor對(duì)象; 通過(guò)Editor對(duì)象存儲(chǔ)key-value名值對(duì)數(shù)據(jù); 通過(guò)commit()方法提交數(shù)據(jù)。 【示例8-1】下面通過(guò)具體案例演示,使用SharedPreferences存儲(chǔ)數(shù)據(jù)。8.2 文件存儲(chǔ) Android也支持使用文件存取數(shù)據(jù)。Activity提供了openFileOutput()方法,可以輸出數(shù)據(jù)到文件中。具體的實(shí)現(xiàn)過(guò)程與在J2SE環(huán)境中保存數(shù)據(jù)到文件中是一樣的。

4、文件可用來(lái)存放大量數(shù)據(jù),如文本、圖片、音頻等。8.2.1 讀寫文件中數(shù)據(jù) Context提供了下面兩個(gè)方法打開(kāi)應(yīng)用程序中數(shù)據(jù)文件夾里的文件IO流。 FileInputStream openFileInput(String name):打開(kāi)應(yīng)用程序中數(shù)據(jù)文件夾里name文件對(duì)應(yīng)的輸入流。 FileOutputStream openFileOutput(String name int mode):打開(kāi)應(yīng)用程序中數(shù)據(jù)文件夾里name文件對(duì)應(yīng)的輸出流。 【示例8-2】下面通過(guò)一個(gè)具體案例演示讀寫文件中的數(shù)據(jù)。8.2.2 讀寫SD卡中數(shù)據(jù) 由于手機(jī)內(nèi)存有限,有時(shí)并不能滿足用戶需求。為了更好地存、取應(yīng)用程

5、序的大文件數(shù)據(jù),應(yīng)用程序可以讀寫SD卡中的數(shù)據(jù)。SD卡大大擴(kuò)充了手機(jī)的存儲(chǔ)能力。 讀寫SD卡中數(shù)據(jù)的步驟: (1)調(diào)用Environment.getExternalStorageStata()方法,判斷手機(jī)是否插入了SD卡,并且應(yīng)用程序是否具有讀寫SD卡數(shù)據(jù)的權(quán)限。 (2)調(diào)用Environment.getExternalStorageDirectory()方法,獲取Android外部存儲(chǔ)器,即SD卡目錄。 (3)調(diào)用FileInputStream、FileOutputStream、FileReader或FileWriter讀寫SD卡里的文件。8.3 SQLite數(shù)據(jù)庫(kù)存儲(chǔ) Android系統(tǒng)

6、集成了一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù)SQLite。它支持SQL語(yǔ)言,并且只利用很少的內(nèi)存就有很好的性能。SQLite適合資源有限的設(shè)備(例如手機(jī)、PAD),實(shí)現(xiàn)適量數(shù)據(jù)存取。8.3.1 SQLiteDatabase和SQLiteOpenHelper 在開(kāi)發(fā)SQLite數(shù)據(jù)庫(kù)應(yīng)用程序中,我們經(jīng)常會(huì)用到SQLiteDatabase類和SQLiteOpenHelper類,下面我們來(lái)初步學(xué)習(xí)這兩個(gè)類。 1. SQLiteDatabase 2. SQLiteOpenHelper8.3.2 數(shù)據(jù)庫(kù)基本操作 在得到數(shù)據(jù)庫(kù)對(duì)象之后,便可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。SQLiteDatabase類提供了提供了一系列方法,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的

7、增、刪、改、查。 【示例8-6】下面通過(guò)具體案例演示,使用SQLiteDatabase的靜態(tài)方法創(chuàng)建數(shù)據(jù)庫(kù),并進(jìn)行操作。8.4 內(nèi)容提供者ContentPrivoder ContentPrivoder是Android平臺(tái)中的又一組件。它是不同應(yīng)用程序之間數(shù)據(jù)交換的標(biāo)準(zhǔn)API,主要實(shí)現(xiàn)數(shù)據(jù)在不同應(yīng)用程序之間的共享,從而能夠讓其他的應(yīng)用保存或讀取此ContentProvider的各種數(shù)據(jù)類型。8.4.1 ContentPrivoder簡(jiǎn)介 一個(gè)程序可以通過(guò)實(shí)現(xiàn)一個(gè)ContentProvider的抽象接口,將自己的數(shù)據(jù)以Uri形式完全暴露出去。其他應(yīng)用程序就可以使用ContentResolver,根

8、據(jù)Uri訪問(wèn)操作指定數(shù)據(jù)。 1.Uri簡(jiǎn)介 2. ContentProvider相關(guān)方法8.4.2 自定義ContentProvider 前面介紹的是如何使用ContentResolver來(lái)操作系統(tǒng)ContentProvider提供的數(shù)據(jù)。本節(jié)內(nèi)容我們將詳細(xì)介紹如何實(shí)現(xiàn)自定義的ContentProvider。 1.創(chuàng)建ContentProvider的步驟 (1)創(chuàng)建一個(gè)類繼承于ContentProvider父類,該類實(shí)現(xiàn)增、刪、改、查等方法; (2)在自定義的ContentProvider子類中,定義一個(gè)public static final的名為CONTENT_URI的Uri類變量。為其指定

9、一個(gè)唯一的字符串值,最好的方案是以類的全名稱。如:public static final Uri CONTENT_URI = Uri.parse(“content:/com.example.MyContentProvider”);; (3)在AndroidMenifest.xml中使用標(biāo)簽來(lái)設(shè)置ContentProvider,并設(shè)置“android:authorities”屬性。 2.工具類 開(kāi)發(fā)自定義的ContentProvider類時(shí)所實(shí)現(xiàn)的增、刪、改、查方法,都需要一個(gè)Uri參數(shù)。該參數(shù)決定對(duì)哪個(gè)Uri進(jìn)行操作。 3.實(shí)現(xiàn)自定義ContentProvider 開(kāi)發(fā)一個(gè)BookContentProvider,使用自定義的ContentProvider訪問(wèn)Book數(shù)據(jù)。8.5 小結(jié) 本章內(nèi)容主要

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論