Android移動開發(fā)基礎(chǔ)案例教程-課件8_第1頁
Android移動開發(fā)基礎(chǔ)案例教程-課件8_第2頁
Android移動開發(fā)基礎(chǔ)案例教程-課件8_第3頁
Android移動開發(fā)基礎(chǔ)案例教程-課件8_第4頁
Android移動開發(fā)基礎(chǔ)案例教程-課件8_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Android移動開發(fā)基礎(chǔ)案例教程第8章ContentProvider(內(nèi)容提供者)·

內(nèi)容提供者的使用·

內(nèi)容觀察者的使用·內(nèi)容提供者簡介·

內(nèi)容提供者的創(chuàng)建Android移動開發(fā)基礎(chǔ)案例教程第8章ContentPr1作業(yè)點評請簡要說明Service有幾種啟動方式以及每種啟動方式的特點。請簡要說明本地服務(wù)通信的過程。作業(yè)點評請簡要說明Service有幾種啟動方式以及每種啟動方什么是內(nèi)容提供者內(nèi)容觀察者的作用預(yù)習檢查什么是內(nèi)容提供者預(yù)習檢查8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介

8.2

內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介ContentProvider內(nèi)容提供者(ContentProvider)是Android系統(tǒng)四大組件之一,它是不同應(yīng)用程序之間進行數(shù)據(jù)共享的標準API,通過ContentResolver類可以訪問ContentProvider中共享的數(shù)據(jù)。ContentProvider的工作原理如下:內(nèi)容提供者簡介ContentProvider內(nèi)容提供者(ContentPrContentResolverContentResolver提供一系列增刪改查的方法對數(shù)據(jù)進行操作,并且這些方法以Uri的形式對外提供數(shù)據(jù)。Uri為內(nèi)容提供者中的數(shù)據(jù)建立了唯一標識符。它主要由三部分組成,scheme、authorities和path。內(nèi)容提供者簡介ContentResolverContentResolver8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介內(nèi)容提供者創(chuàng)建步驟在程序包名處點擊右鍵選擇【New】【Other】【ContentProvider】選項輸入內(nèi)容提供者的ClassName(名稱)和URIAuthorities(唯一標識,通常使用包名)點擊【Finish】按鈕創(chuàng)建完成內(nèi)容提供者的創(chuàng)建內(nèi)容提供者創(chuàng)建步驟在程序包名處點擊右鍵選擇【New】【Ot清單文件內(nèi)容提供者創(chuàng)建完成后,AndroidStudio會自動在AndroidManifest.xml中對內(nèi)容提供者進行注冊。<application......>...... <providerandroid:name=".MyContentProvider"android:authorities="cn.itcast.mycontentprovider"android:enabled="true"android:exported="true"></provider></application>內(nèi)容提供者的創(chuàng)建清單文件內(nèi)容提供者創(chuàng)建完成后,AndroidStudio會8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介Uriuri=Uri.parse("content://cn.itcast.mycontentprovider/person");ContentResolverresolver=context.getContentResolver();Cursorcursor=resolver.query(uri,newString[]{"address","date","type","body"}, null,null,null);while(cursor.moveToNext()){Stringaddress=cursor.getString(0);longdate=cursor.getLong(1);inttype=cursor.getInt(2);Stringbody=cursor.getString(3);}cursor.close();8.3.1訪問內(nèi)容提供者Uriuri=Uri.parse("conte123功能描述:技術(shù)要點:找到系統(tǒng)短信的ContentProvider的Uri地址了解系統(tǒng)短信的數(shù)據(jù)庫文件用戶交互界面的設(shè)計與實現(xiàn)實體類(SmsInfo.java)的創(chuàng)建界面邏輯代碼的設(shè)計與實現(xiàn)添加讀取短信權(quán)限案例代碼(詳見教材P4—P10)實現(xiàn)步驟:查看系統(tǒng)短信。使用ContentResolver查詢ContentProvider共享出來的數(shù)據(jù)。8.3.2實戰(zhàn)演練——查看短信的喵123功能描述:技術(shù)要點:找到系統(tǒng)短信的ContentPro8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介內(nèi)容觀察者內(nèi)容觀察者(ContentObserver)是用來觀察指定Uri所代表的數(shù)據(jù)的,當ContentObserver觀察到指定Uri代表的數(shù)據(jù)發(fā)生變化時,就會觸發(fā)onChange()方法,在該方法中使用ContentResovler可以查詢到變化的數(shù)據(jù)。要使用ContentObserver觀察數(shù)據(jù)變化,就必須在ContentProvider的delete()、insert()、update()方法中調(diào)用ContentResolver的notifyChange()方法。8.4.1內(nèi)容觀察者簡介內(nèi)容觀察者內(nèi)容觀察者(ContentObserver)是用來內(nèi)容觀察者常用方法ContentObserver的兩個常用方法:publicvoidContentObserver(Handlerhandler): ContentObserver的派生類都需要調(diào)用該構(gòu)造方法。參數(shù)可以是主線程Handler,也可以是任何Handler對象(Handler將在第9章講解)。publicvoidonChange(booleanselfChange):

當觀察的Uri代表的數(shù)據(jù)發(fā)生變化時,會觸發(fā)該方法。在該方法中使用ContentResovler可以查詢到變化的數(shù)據(jù)。8.4.1內(nèi)容觀察者簡介內(nèi)容觀察者常用方法ContentObserver的兩個常用方ContentResolverresolver=getContentResolver();Uriuri=Uri.parse("content://aaa.bbb.ccc");resolver.registerContentObserver(uri,true,newMyObserver(newHandler()));8.4.1內(nèi)容觀察者簡介ContentResolverresolver=

privateclassMyObserverextendsContentObserver{publicMyObserver(Handlerhandler){super(handler);}publicvoidonChange(booleanselfChange){super.onChange(selfChange);Uriuri=Uri.parse("content://aaa.bbb.ccc");ContentResolverresolver=getContentResolver();Cursorcursor=resolver.query(uri,newString[]{"address","date",

"type", "body"},null,null,null);......cursor.close();}}8.4.1內(nèi)容觀察者簡介privateclassMyObservere123功能描述:技術(shù)要點:創(chuàng)建操作數(shù)據(jù)庫的程序用戶交互界面的設(shè)計與實現(xiàn)數(shù)據(jù)庫的幫助類(PersonDBOpenHelper.java)的創(chuàng)建內(nèi)容提供者(PersonProvider.java)的創(chuàng)建操作數(shù)據(jù)庫界面邏輯代碼的設(shè)計與實現(xiàn)創(chuàng)建監(jiān)測數(shù)據(jù)庫變化的程序監(jiān)測數(shù)據(jù)庫變化界面邏輯代碼的設(shè)計與實現(xiàn)案例代碼(詳見教材P12—P22)實現(xiàn)步驟:監(jiān)測數(shù)據(jù)庫的變化。內(nèi)容觀察者的工作原理及用法。8.4.2實戰(zhàn)演練——監(jiān)測數(shù)據(jù)的喵123功能描述:技術(shù)要點:創(chuàng)建操作數(shù)據(jù)庫的程序案例代碼(詳見

本章詳細地講解了內(nèi)容提供者的相關(guān)知識,首先簡單地介紹了內(nèi)容提供者,然后講解了如何創(chuàng)建內(nèi)容提供者以及如何使用內(nèi)容提供者訪問其他程序暴露的數(shù)據(jù)。最后講解內(nèi)容觀察者,通過內(nèi)容觀察者觀察數(shù)據(jù)的變化。

至此,Android的四大組件已經(jīng)講完了,分別是Activity、Service、BroadcastReceiver和本章所講的ContentProvider,熟練掌握四大組件的使用有助于初學者們更好的開發(fā)程序,因此要求一定要熟練掌握這些組件的使用。8.5本章小結(jié)本章詳細地講解了內(nèi)容提供者的相關(guān)知識,首先簡單?本章作業(yè)為什么需要使用ContentProvider對外共享數(shù)據(jù)。內(nèi)容提供者的工作原理。?預(yù)習作業(yè)什么是HTTP協(xié)議Handler消息機制的作用?本章作業(yè)Android移動開發(fā)基礎(chǔ)案例教程-課件8Android移動開發(fā)基礎(chǔ)案例教程第8章ContentProvider(內(nèi)容提供者)·

內(nèi)容提供者的使用·

內(nèi)容觀察者的使用·內(nèi)容提供者簡介·

內(nèi)容提供者的創(chuàng)建Android移動開發(fā)基礎(chǔ)案例教程第8章ContentPr22作業(yè)點評請簡要說明Service有幾種啟動方式以及每種啟動方式的特點。請簡要說明本地服務(wù)通信的過程。作業(yè)點評請簡要說明Service有幾種啟動方式以及每種啟動方什么是內(nèi)容提供者內(nèi)容觀察者的作用預(yù)習檢查什么是內(nèi)容提供者預(yù)習檢查8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介

8.2

內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介ContentProvider內(nèi)容提供者(ContentProvider)是Android系統(tǒng)四大組件之一,它是不同應(yīng)用程序之間進行數(shù)據(jù)共享的標準API,通過ContentResolver類可以訪問ContentProvider中共享的數(shù)據(jù)。ContentProvider的工作原理如下:內(nèi)容提供者簡介ContentProvider內(nèi)容提供者(ContentPrContentResolverContentResolver提供一系列增刪改查的方法對數(shù)據(jù)進行操作,并且這些方法以Uri的形式對外提供數(shù)據(jù)。Uri為內(nèi)容提供者中的數(shù)據(jù)建立了唯一標識符。它主要由三部分組成,scheme、authorities和path。內(nèi)容提供者簡介ContentResolverContentResolver8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介內(nèi)容提供者創(chuàng)建步驟在程序包名處點擊右鍵選擇【New】【Other】【ContentProvider】選項輸入內(nèi)容提供者的ClassName(名稱)和URIAuthorities(唯一標識,通常使用包名)點擊【Finish】按鈕創(chuàng)建完成內(nèi)容提供者的創(chuàng)建內(nèi)容提供者創(chuàng)建步驟在程序包名處點擊右鍵選擇【New】【Ot清單文件內(nèi)容提供者創(chuàng)建完成后,AndroidStudio會自動在AndroidManifest.xml中對內(nèi)容提供者進行注冊。<application......>...... <providerandroid:name=".MyContentProvider"android:authorities="cn.itcast.mycontentprovider"android:enabled="true"android:exported="true"></provider></application>內(nèi)容提供者的創(chuàng)建清單文件內(nèi)容提供者創(chuàng)建完成后,AndroidStudio會8.4

內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介Uriuri=Uri.parse("content://cn.itcast.mycontentprovider/person");ContentResolverresolver=context.getContentResolver();Cursorcursor=resolver.query(uri,newString[]{"address","date","type","body"}, null,null,null);while(cursor.moveToNext()){Stringaddress=cursor.getString(0);longdate=cursor.getLong(1);inttype=cursor.getInt(2);Stringbody=cursor.getString(3);}cursor.close();8.3.1訪問內(nèi)容提供者Uriuri=Uri.parse("conte123功能描述:技術(shù)要點:找到系統(tǒng)短信的ContentProvider的Uri地址了解系統(tǒng)短信的數(shù)據(jù)庫文件用戶交互界面的設(shè)計與實現(xiàn)實體類(SmsInfo.java)的創(chuàng)建界面邏輯代碼的設(shè)計與實現(xiàn)添加讀取短信權(quán)限案例代碼(詳見教材P4—P10)實現(xiàn)步驟:查看系統(tǒng)短信。使用ContentResolver查詢ContentProvider共享出來的數(shù)據(jù)。8.3.2實戰(zhàn)演練——查看短信的喵123功能描述:技術(shù)要點:找到系統(tǒng)短信的ContentPro8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介8.2內(nèi)容提供者的創(chuàng)建8.3內(nèi)容提供者的使用主講內(nèi)容8.4內(nèi)容觀察者的使用8.1內(nèi)容提供者簡介內(nèi)容觀察者內(nèi)容觀察者(ContentObserver)是用來觀察指定Uri所代表的數(shù)據(jù)的,當ContentObserver觀察到指定Uri代表的數(shù)據(jù)發(fā)生變化時,就會觸發(fā)onChange()方法,在該方法中使用ContentResovler可以查詢到變化的數(shù)據(jù)。要使用ContentObserver觀察數(shù)據(jù)變化,就必須在ContentProvider的delete()、insert()、update()方法中調(diào)用ContentResolver的notifyChange()方法。8.4.1內(nèi)容觀察者簡介內(nèi)容觀察者內(nèi)容觀察者(ContentObserver)是用來內(nèi)容觀察者常用方法ContentObserver的兩個常用方法:publicvoidContentObserver(Handlerhandler): ContentObserver的派生類都需要調(diào)用該構(gòu)造方法。參數(shù)可以是主線程Handler,也可以是任何Handler對象(Handler將在第9章講解)。publicvoidonChange(booleanselfChange):

當觀察的Uri代表的數(shù)據(jù)發(fā)生變化時,會觸發(fā)該方法。在該方法中使用ContentResovler可以查詢到變化的數(shù)據(jù)。8.4.1內(nèi)容觀察者簡介內(nèi)容觀察者常用方法ContentObserver的兩個常用方ContentResolverresolver=getContentResolver();Uriuri=Uri.parse("content://aaa.bbb.ccc");resolver.registerContentObserver(uri,true,newMyObserver(newHandler()));8.4.1內(nèi)容觀察者簡介ContentResolverresolver=

privateclassMyObserverextendsContentObserver{publicMyObserver(Handlerhandler){super(handler);}publicvoidonChange(booleanselfChange){super.onChange(selfChange);Uriuri=Uri.parse("content://aaa.bbb.ccc");ContentResolverresolver=getContentResolver();Cursorc

溫馨提示

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

評論

0/150

提交評論