




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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的兩種類型:本地服務(wù)和遠(yuǎn)程服務(wù)情景導(dǎo)入日常生活通過手機(jī)播放音頻來學(xué)習(xí)、工作和娛樂已經(jīng)成為大多數(shù)人采取的主要途徑,本項(xiàng)目以手機(jī)播放器為業(yè)務(wù)背景,通過Service組件技術(shù),實(shí)現(xiàn)播放器運(yùn)行過程中的核心功能:播放、暫停、重播、停止等。任務(wù)描述功能描述本任務(wù)將設(shè)計(jì)一款音樂播放器程序。使用線性布局設(shè)計(jì)音樂播放器主界面初始化進(jìn)度條的長(zhǎng)度,獲取音樂文件的長(zhǎng)度點(diǎn)擊“播放”按鈕,播放音樂并且更新進(jìn)度條進(jìn)度點(diǎn)擊“暫停”按鈕,暫停播放音樂并且暫停更新進(jìn)度條點(diǎn)擊“重播”按鈕,音樂重新開始播放并且更新進(jìn)度條進(jìn)度點(diǎn)擊“停止”按鈕,音樂停止播放并且進(jìn)度條停止更新【基本框架】基本框架如圖8.1所示,將框架圖轉(zhuǎn)換成的效果如圖8.2所示。任務(wù)描述任務(wù)技能技能點(diǎn)1Service概述1Service簡(jiǎn)介Service是可以在后臺(tái)執(zhí)行長(zhǎng)時(shí)間操作而不使用戶界面的應(yīng)用組件,與Android四大組件中的Activity最相似,代表著可執(zhí)行程序。Service有自己的生命周期,按運(yùn)行類別分類可分為前臺(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ì)的信息,類似于通知。有些項(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方法說明Service有自己的生命周期,經(jīng)歷了創(chuàng)建到銷毀的過程,Service的有兩種啟動(dòng)方式:startService()和bindService()。Service生命周期如圖8.4所示。Service生命周期相關(guān)方法說明如表8.1所示。任務(wù)技能任務(wù)技能任務(wù)技能3Service實(shí)現(xiàn)雖然Service在后臺(tái)運(yùn)行,但是Service后端的數(shù)據(jù)還是要用戶可見的,最終還是要呈現(xiàn)在前端Activity上的,因此在啟動(dòng)Service時(shí),系統(tǒng)會(huì)重新開啟一個(gè)新的進(jìn)程。當(dāng)想獲取啟動(dòng)的Service實(shí)例時(shí),可以用到bindService()和onBindService()方法。在這兩種方法中分別執(zhí)行了Service中的IBinder()和onUnbind()方法。接下來新建一個(gè)Service,命名為Service.java。任務(wù)技能技能點(diǎn)2服務(wù)通信1本地服務(wù)通信本地服務(wù)通信是最常用的后臺(tái)Service,用于實(shí)現(xiàn)應(yīng)用程序內(nèi)部的一些耗時(shí)任務(wù),比如查詢升級(jí)信息,并不占用應(yīng)用程序比如Activity所屬線程,而是單開線程后臺(tái)執(zhí)行。Service與訪問者之間無法進(jìn)行通信以及數(shù)據(jù)交換,若Service和訪問者之間要進(jìn)行通信,就調(diào)用bindService()和unBindService()這兩個(gè)方法來啟動(dòng)或關(guān)閉Service。Context的bindService()方法的完整方法為bindService(Intentservice,ServiceConnectionconn,intflags),Context的bindService()方法參數(shù)說明如表8.2所示。任務(wù)技能注意:當(dāng)調(diào)用者主動(dòng)通過unBindService()方法斷開與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,接口描述語言)工具來幫助進(jìn)程間接口的建立。遠(yuǎn)程服務(wù)通信適用于為其它應(yīng)用程序提供公共服務(wù)的Service,這種Service就是系統(tǒng)常駐Service。當(dāng)創(chuàng)建遠(yuǎn)程服務(wù)時(shí),首先要通過AIDL文件定義服務(wù)(Service)向客戶端(Client)提供的接口,在對(duì)應(yīng)的目錄下添加一個(gè)后綴為.aidl的文件,IMyAidllnterface.aidl文件內(nèi)容如下所示。任務(wù)技能Aidl的適用場(chǎng)景為:只有允許客戶端從不同的應(yīng)用程序去訪問Service時(shí),可以使用aidl來實(shí)現(xiàn)。當(dāng)我們創(chuàng)建遠(yuǎn)程Service時(shí),我們還需要新建RemoteService,在遠(yuǎn)程服務(wù)中,通過Service的onBind(),在客戶端與服務(wù)建立連接時(shí),用來傳遞Stub(存根)對(duì)象。具體代碼如下所示。任務(wù)技能任務(wù)技能同時(shí),在AndroidManifest.xml中對(duì)RemoteService進(jìn)行如下配置:任務(wù)實(shí)施第一步:在Eclipse中創(chuàng)建一個(gè)Android工程,命名為“音樂播放器”,并設(shè)計(jì)界面。如圖8.2所示。第二步:在src文件夾中建立MainActivity.java文件并實(shí)現(xiàn)界面初始化。第三步:在MainActivity中實(shí)現(xiàn)獲取音樂文件功能。第四步:實(shí)現(xiàn)音樂播放功能。第五步:實(shí)現(xiàn)音樂暫停功能。第六步:實(shí)現(xiàn)音樂重播功能。第七步:實(shí)現(xiàn)音樂停止功能。第八步:編寫更新進(jìn)度條代碼。第九步:編寫取消綁定防止退出程序抱死的代碼。第十步:運(yùn)行程序。任務(wù)實(shí)施任務(wù)拓展【拓展目的】熟悉并掌握Service生命周期的使用方法以及本地與遠(yuǎn)程服務(wù)。【拓展內(nèi)容】實(shí)現(xiàn)“音樂播放器”上一曲下一曲功能。效果如圖8.6所示?!就卣共襟E】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的開發(fā)和通信,這個(gè)知識(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理三基模擬習(xí)題(附參考答案解析)
- 力的分解與合成-高考物理一輪復(fù)習(xí)
- 2025至2030年中國(guó)電子閱讀器行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025至2030年中國(guó)有色金屬礦采選行業(yè)發(fā)展監(jiān)測(cè)及市場(chǎng)發(fā)展?jié)摿︻A(yù)測(cè)報(bào)告
- 2025至2030年中國(guó)版權(quán)轉(zhuǎn)讓行業(yè)發(fā)展監(jiān)測(cè)及行業(yè)市場(chǎng)深度研究報(bào)告
- 2025至2030年中國(guó)中小企業(yè)貸款行業(yè)競(jìng)爭(zhēng)格局分析及投資戰(zhàn)略咨詢報(bào)告
- MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(慕課版)(第2版) 教案全套 洪曉芳 第1-9單元 MySQL概述 -MySQL管理
- 新課程標(biāo)準(zhǔn)背景下小學(xué)數(shù)學(xué)單元整體教學(xué)的實(shí)踐策略
- 工廠防漏補(bǔ)漏工程合同范本
- 新疆維吾爾自治區(qū)部分學(xué)校2024-2025學(xué)年高二下學(xué)期7月聯(lián)考地理試卷(含答案)
- 無人機(jī)培訓(xùn)機(jī)構(gòu)運(yùn)營(yíng)管理方案
- 河南省鄭州市2023-2024學(xué)年高一下學(xué)期6月期末物理試題(解析版)
- 物業(yè)管理公司市場(chǎng)拓展方案
- GB 35181-2025重大火災(zāi)隱患判定規(guī)則
- 針刀室管理制度
- 醫(yī)療投訴管理培訓(xùn)
- 提升門施工方案
- 皮內(nèi)注射完整版本
- 危險(xiǎn)化品安全管理培訓(xùn)
- 華西醫(yī)院管理
- 2025年昆明市官渡區(qū)國(guó)有資產(chǎn)投資經(jīng)營(yíng)有限公司招聘筆試參考題庫附帶答案詳解
評(píng)論
0/150
提交評(píng)論