《Android項目式程序設計》08 Service服務寫字字帖_第1頁
《Android項目式程序設計》08 Service服務寫字字帖_第2頁
《Android項目式程序設計》08 Service服務寫字字帖_第3頁
《Android項目式程序設計》08 Service服務寫字字帖_第4頁
《Android項目式程序設計》08 Service服務寫字字帖_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目八Service服務學習目標了解Service的特點掌握Service的啟動方式掌握Service的兩種類型:本地服務和遠程服務情景導入日常生活通過手機播放音頻來學習、工作和娛樂已經成為大多數(shù)人采取的主要途徑,本項目以手機播放器為業(yè)務背景,通過Service組件技術,實現(xiàn)播放器運行過程中的核心功能:播放、暫停、重播、停止等。任務描述功能描述本任務將設計一款音樂播放器程序。使用線性布局設計音樂播放器主界面初始化進度條的長度,獲取音樂文件的長度點擊“播放”按鈕,播放音樂并且更新進度條進度點擊“暫?!卑粹o,暫停播放音樂并且暫停更新進度條點擊“重播”按鈕,音樂重新開始播放并且更新進度條進度點擊“停止”按鈕,音樂停止播放并且進度條停止更新【基本框架】基本框架如圖8.1所示,將框架圖轉換成的效果如圖8.2所示。任務描述任務技能技能點1Service概述1Service簡介Service是可以在后臺執(zhí)行長時間操作而不使用戶界面的應用組件,與Android四大組件中的Activity最相似,代表著可執(zhí)行程序。Service有自己的生命周期,按運行類別分類可分為前臺Service與后臺Service兩種。任務技能前臺Service和后臺Service最大的區(qū)別在于前臺Service會在系統(tǒng)的狀態(tài)欄顯示一個一直運行的圖標。當下拉狀態(tài)欄后會看到更為詳細的信息,類似于通知。有些項目要實現(xiàn)Service在后臺更新數(shù)據(jù)的同時,還要在狀態(tài)欄顯示圖標和新的信息的時候必須使用前臺Service了,前臺Service應用,如圖8.3所示。任務技能任務技能2Service方法說明Service有自己的生命周期,經歷了創(chuàng)建到銷毀的過程,Service的有兩種啟動方式:startService()和bindService()。Service生命周期如圖8.4所示。Service生命周期相關方法說明如表8.1所示。任務技能任務技能任務技能3Service實現(xiàn)雖然Service在后臺運行,但是Service后端的數(shù)據(jù)還是要用戶可見的,最終還是要呈現(xiàn)在前端Activity上的,因此在啟動Service時,系統(tǒng)會重新開啟一個新的進程。當想獲取啟動的Service實例時,可以用到bindService()和onBindService()方法。在這兩種方法中分別執(zhí)行了Service中的IBinder()和onUnbind()方法。接下來新建一個Service,命名為Service.java。任務技能技能點2服務通信1本地服務通信本地服務通信是最常用的后臺Service,用于實現(xiàn)應用程序內部的一些耗時任務,比如查詢升級信息,并不占用應用程序比如Activity所屬線程,而是單開線程后臺執(zhí)行。Service與訪問者之間無法進行通信以及數(shù)據(jù)交換,若Service和訪問者之間要進行通信,就調用bindService()和unBindService()這兩個方法來啟動或關閉Service。Context的bindService()方法的完整方法為bindService(Intentservice,ServiceConnectionconn,intflags),Context的bindService()方法參數(shù)說明如表8.2所示。任務技能注意:當調用者主動通過unBindService()方法斷開與Service的連接時,ServiceConnection對象的onServiceDisconnected(ComponentNamename)方法并不會被調用。使用startService()啟動服務后,要使用stopService()停止服務。同時使用startService()與bindService()要注意,需要unbindService()與stopService()同時調用,才能終止Service。任務技能2遠程服務通信遠程服務是一個獨立的進程,它不受其它進程的影響,能為其它應用程序提供可用的接口—進程間通信IPC(Inter-ProcessCommunication),Android提供了AIDL(AndroidInterfaceDefinitionLanguage,接口描述語言)工具來幫助進程間接口的建立。遠程服務通信適用于為其它應用程序提供公共服務的Service,這種Service就是系統(tǒng)常駐Service。當創(chuàng)建遠程服務時,首先要通過AIDL文件定義服務(Service)向客戶端(Client)提供的接口,在對應的目錄下添加一個后綴為.aidl的文件,IMyAidllnterface.aidl文件內容如下所示。任務技能Aidl的適用場景為:只有允許客戶端從不同的應用程序去訪問Service時,可以使用aidl來實現(xiàn)。當我們創(chuàng)建遠程Service時,我們還需要新建RemoteService,在遠程服務中,通過Service的onBind(),在客戶端與服務建立連接時,用來傳遞Stub(存根)對象。具體代碼如下所示。任務技能任務技能同時,在AndroidManifest.xml中對RemoteService進行如下配置:任務實施第一步:在Eclipse中創(chuàng)建一個Android工程,命名為“音樂播放器”,并設計界面。如圖8.2所示。第二步:在src文件夾中建立MainActivity.java文件并實現(xiàn)界面初始化。第三步:在MainActivity中實現(xiàn)獲取音樂文件功能。第四步:實現(xiàn)音樂播放功能。第五步:實現(xiàn)音樂暫停功能。第六步:實現(xiàn)音樂重播功能。第七步:實現(xiàn)音樂停止功能。第八步:編寫更新進度條代碼。第九步:編寫取消綁定防止退出程序抱死的代碼。第十步:運行程序。任務實施任務拓展【拓展目的】熟悉并掌握Service生命周期的使用方法以及本地與遠程服務。【拓展內容】實現(xiàn)“音樂播放器”上一曲下一曲功能。效果如圖8.6所示?!就卣共襟E】1設計思路添加上一曲,下一曲成功實現(xiàn)歌曲的切換功能。2“上一曲”,“下一曲”功能。任務拓展任務總結學習Service需要重點掌握創(chuàng)建、配置Service組件,以及如何啟動、停止Service。本項目重點是Service的開發(fā)和通信,這個知識

溫馨提示

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

評論

0/150

提交評論