版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目八Service服務(wù)學(xué)習(xí)目標(biāo)了解Service的特點(diǎn)掌握Service的啟動(dòng)方式掌握Service的兩種類(lèi)型:本地服務(wù)和遠(yuǎn)程服務(wù)情景導(dǎo)入日常生活通過(guò)手機(jī)播放音頻來(lái)學(xué)習(xí)、工作和娛樂(lè)已經(jīng)成為大多數(shù)人采取的主要途徑,本項(xiàng)目以手機(jī)播放器為業(yè)務(wù)背景,通過(guò)Service組件技術(shù),實(shí)現(xiàn)播放器運(yùn)行過(guò)程中的核心功能:播放、暫停、重播、停止等。任務(wù)描述功能描述本任務(wù)將設(shè)計(jì)一款音樂(lè)播放器程序。使用線(xiàn)性布局設(shè)計(jì)音樂(lè)播放器主界面初始化進(jìn)度條的長(zhǎng)度,獲取音樂(lè)文件的長(zhǎng)度點(diǎn)擊“播放”按鈕,播放音樂(lè)并且更新進(jìn)度條進(jìn)度點(diǎn)擊“暫?!卑粹o,暫停播放音樂(lè)并且暫停更新進(jìn)度條點(diǎn)擊“重播”按鈕,音樂(lè)重新開(kāi)始播放并且更新進(jìn)度條進(jìn)度點(diǎn)擊“停止”按鈕,音樂(lè)停止播放并且進(jìn)度條停止更新【基本框架】基本框架如圖8.1所示,將框架圖轉(zhuǎn)換成的效果如圖8.2所示。任務(wù)描述任務(wù)技能技能點(diǎn)1Service概述1Service簡(jiǎn)介Service是可以在后臺(tái)執(zhí)行長(zhǎng)時(shí)間操作而不使用戶(hù)界面的應(yīng)用組件,與Android四大組件中的Activity最相似,代表著可執(zhí)行程序。Service有自己的生命周期,按運(yùn)行類(lèi)別分類(lèi)可分為前臺(tái)Service與后臺(tái)Service兩種。任務(wù)技能前臺(tái)Service和后臺(tái)Service最大的區(qū)別在于前臺(tái)Service會(huì)在系統(tǒng)的狀態(tài)欄顯示一個(gè)一直運(yùn)行的圖標(biāo)。當(dāng)下拉狀態(tài)欄后會(huì)看到更為詳細(xì)的信息,類(lèi)似于通知。有些項(xiàng)目要實(shí)現(xiàn)Service在后臺(tái)更新數(shù)據(jù)的同時(shí),還要在狀態(tài)欄顯示圖標(biāo)和新的信息的時(shí)候必須使用前臺(tái)Service了,前臺(tái)Service應(yīng)用,如圖8.3所示。任務(wù)技能任務(wù)技能2Service方法說(shuō)明Service有自己的生命周期,經(jīng)歷了創(chuàng)建到銷(xiāo)毀的過(guò)程,Service的有兩種啟動(dòng)方式:startService()和bindService()。Service生命周期如圖8.4所示。Service生命周期相關(guān)方法說(shuō)明如表8.1所示。任務(wù)技能任務(wù)技能任務(wù)技能3Service實(shí)現(xiàn)雖然Service在后臺(tái)運(yùn)行,但是Service后端的數(shù)據(jù)還是要用戶(hù)可見(jiàn)的,最終還是要呈現(xiàn)在前端Activity上的,因此在啟動(dòng)Service時(shí),系統(tǒng)會(huì)重新開(kāi)啟一個(gè)新的進(jìn)程。當(dāng)想獲取啟動(dòng)的Service實(shí)例時(shí),可以用到bindService()和onBindService()方法。在這兩種方法中分別執(zhí)行了Service中的IBinder()和onUnbind()方法。接下來(lái)新建一個(gè)Service,命名為Service.java。任務(wù)技能技能點(diǎn)2服務(wù)通信1本地服務(wù)通信本地服務(wù)通信是最常用的后臺(tái)Service,用于實(shí)現(xiàn)應(yīng)用程序內(nèi)部的一些耗時(shí)任務(wù),比如查詢(xún)升級(jí)信息,并不占用應(yīng)用程序比如Activity所屬線(xiàn)程,而是單開(kāi)線(xiàn)程后臺(tái)執(zhí)行。Service與訪(fǎng)問(wèn)者之間無(wú)法進(jìn)行通信以及數(shù)據(jù)交換,若Service和訪(fǎng)問(wèn)者之間要進(jìn)行通信,就調(diào)用bindService()和unBindService()這兩個(gè)方法來(lái)啟動(dòng)或關(guān)閉Service。Context的bindService()方法的完整方法為bindService(Intentservice,ServiceConnectionconn,intflags),Context的bindService()方法參數(shù)說(shuō)明如表8.2所示。任務(wù)技能注意:當(dāng)調(diào)用者主動(dòng)通過(guò)unBindService()方法斷開(kāi)與Service的連接時(shí),ServiceConnection對(duì)象的onServiceDisconnected(ComponentNamename)方法并不會(huì)被調(diào)用。使用startService()啟動(dòng)服務(wù)后,要使用stopService()停止服務(wù)。同時(shí)使用startService()與bindService()要注意,需要unbindService()與stopService()同時(shí)調(diào)用,才能終止Service。任務(wù)技能2遠(yuǎn)程服務(wù)通信遠(yuǎn)程服務(wù)是一個(gè)獨(dú)立的進(jìn)程,它不受其它進(jìn)程的影響,能為其它應(yīng)用程序提供可用的接口—進(jìn)程間通信IPC(Inter-ProcessCommunication),Android提供了AIDL(AndroidInterfaceDefinitionLanguage,接口描述語(yǔ)言)工具來(lái)幫助進(jìn)程間接口的建立。遠(yuǎn)程服務(wù)通信適用于為其它應(yīng)用程序提供公共服務(wù)的Service,這種Service就是系統(tǒng)常駐Service。當(dāng)創(chuàng)建遠(yuǎn)程服務(wù)時(shí),首先要通過(guò)AIDL文件定義服務(wù)(Service)向客戶(hù)端(Client)提供的接口,在對(duì)應(yīng)的目錄下添加一個(gè)后綴為.aidl的文件,IMyAidllnterface.aidl文件內(nèi)容如下所示。任務(wù)技能Aidl的適用場(chǎng)景為:只有允許客戶(hù)端從不同的應(yīng)用程序去訪(fǎng)問(wèn)Service時(shí),可以使用aidl來(lái)實(shí)現(xiàn)。當(dāng)我們創(chuàng)建遠(yuǎn)程Service時(shí),我們還需要新建RemoteService,在遠(yuǎn)程服務(wù)中,通過(guò)Service的onBind(),在客戶(hù)端與服務(wù)建立連接時(shí),用來(lái)傳遞Stub(存根)對(duì)象。具體代碼如下所示。任務(wù)技能任務(wù)技能同時(shí),在AndroidManifest.xml中對(duì)RemoteService進(jìn)行如下配置:任務(wù)實(shí)施第一步:在Eclipse中創(chuàng)建一個(gè)Android工程,命名為“音樂(lè)播放器”,并設(shè)計(jì)界面。如圖8.2所示。第二步:在src文件夾中建立MainActivity.java文件并實(shí)現(xiàn)界面初始化。第三步:在MainActivity中實(shí)現(xiàn)獲取音樂(lè)文件功能。第四步:實(shí)現(xiàn)音樂(lè)播放功能。第五步:實(shí)現(xiàn)音樂(lè)暫停功能。第六步:實(shí)現(xiàn)音樂(lè)重播功能。第七步:實(shí)現(xiàn)音樂(lè)停止功能。第八步:編寫(xiě)更新進(jìn)度條代碼。第九步:編寫(xiě)取消綁定防止退出程序抱死的代碼。第十步:運(yùn)行程序。任務(wù)實(shí)施任務(wù)拓展【拓展目的】熟悉并掌握Service生命周期的使用方法以及本地與遠(yuǎn)程服務(wù)?!就卣箖?nèi)容】實(shí)現(xiàn)“音樂(lè)播放器”上一曲下一曲功能。效果如圖8.6所示。【拓展步驟】1設(shè)計(jì)思路添加上一曲,下一曲成功實(shí)現(xiàn)歌曲的切換功能。2“上一曲”,“下一曲”功能。任務(wù)拓展任務(wù)總結(jié)學(xué)習(xí)Service需要重點(diǎn)掌握創(chuàng)建、配置Service組件,以及如何啟動(dòng)、停止Service。本項(xiàng)目重點(diǎn)是Service的開(kāi)發(fā)和通信,這個(gè)知識(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年江西交通職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026年北京科技大學(xué)天津?qū)W院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年云南交通運(yùn)輸職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫(kù)含詳細(xì)答案解析
- 2026年上海電力大學(xué)單招綜合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026年安徽工業(yè)經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026年內(nèi)蒙古美術(shù)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考題庫(kù)含詳細(xì)答案解析
- 2026年鄭州商貿(mào)旅游職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年天津機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年江西司法警官職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年蚌埠經(jīng)濟(jì)技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026德江縣縣屬?lài)?guó)有企業(yè)招聘13人參考考試題庫(kù)附答案解析
- 尋脈山河:中國(guó)主要河流與湖泊的空間認(rèn)知與生態(tài)理解-八年級(jí)地理教學(xué)設(shè)計(jì)
- 達(dá)人精準(zhǔn)運(yùn)營(yíng)方案
- 四川省涼山州2025-2026學(xué)年上學(xué)期期末考試七年級(jí)數(shù)學(xué)試題(含答案)
- 語(yǔ)文試題-汕頭市2025-2026學(xué)年度普通高中畢業(yè)班教學(xué)質(zhì)量監(jiān)測(cè)(含解析)
- 水利水電工程單元工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)(2025版)解讀課件
- 水利工程項(xiàng)目設(shè)計(jì)審批流程與管理要點(diǎn)
- 2026年浙江高考英語(yǔ)考試真題及答案
- (16)普通高中體育與健康課程標(biāo)準(zhǔn)日常修訂版(2017年版2025年修訂)
- 寒假輔導(dǎo)班招生方案
- 文松宋曉峰小品郵輪風(fēng)云斗地主臺(tái)詞劇本完整版(通用4篇)
評(píng)論
0/150
提交評(píng)論