




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Android移動(dòng)應(yīng)用設(shè)計(jì)與開發(fā)第6章服務(wù)6.1本地服務(wù)6.1.1兩種啟動(dòng)方式6.1.2生命周期6.2遠(yuǎn)程服務(wù)6.3服務(wù)小實(shí)例6.4本章小結(jié)本章導(dǎo)讀第6章服務(wù)Service是Android系統(tǒng)中的四大組件之一,它與Activity不同,它是不能與用戶交互的。它是一種長生命周期的,沒有可視化界面,運(yùn)行于后臺(tái)的一種服務(wù)程序。6.1本地服務(wù)本地服務(wù)(LocalService)用于應(yīng)用程序內(nèi)部,可以實(shí)現(xiàn)應(yīng)用程序自己的一些耗時(shí)任務(wù),比如查詢升級(jí)信息、網(wǎng)絡(luò)傳輸,或者在一些場合需要在后臺(tái)執(zhí)行,比如播放音樂,并不占用應(yīng)用程序比如Activity所屬的線程,而是單開線程后臺(tái)執(zhí)行,這樣用戶體驗(yàn)比較好。6.1.1兩種啟動(dòng)方式Service有兩種啟動(dòng)方式:1、通過Context.bindService(Intentintent,ServiceConnectionconn,intflags)
綁定時(shí),bindService->onCreate()–>onBind();綁定Service需要三個(gè)參數(shù):intent:Intent對象,需要定義指向服務(wù)類。conn:ServiceConnection接口對象,創(chuàng)建該對象要實(shí)現(xiàn)它的onServiceConnected()和
onServiceDisconnected()來判斷連接成功或者是斷開連接。flags:創(chuàng)建Service模式,一共有以下三種模式:Service.BIND_AUTO_CREATE:指定綁定的時(shí)候自動(dòng)創(chuàng)建Service,最常使用的模式Service.BIND_DEBUG_UNBIND:測試綁定的時(shí)候,進(jìn)行調(diào)試所用Service.BIND_NOT_FOREGROUND:不在前臺(tái)進(jìn)行綁定6.1.1兩種啟動(dòng)方式
解綁定,unbindService–>onUnbind()–>onDestory();
此時(shí)如果調(diào)用者(如Activity)直接退出,Service由于與調(diào)用者綁定在一起,則Service會(huì)隨著調(diào)用者一同停止。2、通過Context.startService(Intentintent)啟動(dòng)時(shí),startService–>onCreate()–>onStart();停止時(shí),stopService–>onDestroy();6.1.2生命周期Service生命周期一般有兩種運(yùn)行模式,這兩種模式并不是完全分離的:
該模式下,Service是通過Context.startService()方法開始,以Context.stopService()方法停止。
外部程序建立一個(gè)到Service的連接,通過這個(gè)連接來操作Service。建立連接開始于Context.bindService(),結(jié)束于Context.unbindService()。多個(gè)客戶端可以綁定到同一個(gè)Service,如果Service沒有啟動(dòng),可以通過Context.bindService()啟動(dòng)它。在程序沒有停止Service或者Service自己停止的情況下,Service將一直在后臺(tái)運(yùn)行。1可以通過接口被外部程序調(diào)用。26.1.2生命周期Service的生命周期:12整個(gè)生命周期活動(dòng)生命周期從onCreate()開始,到onDestroy()結(jié)束,跟Activity很類似。Service生命周期在onCreate()中執(zhí)行初始化操作,在onDestroy()中釋放所有用到的資源。開始于onStart(),或者開始于onBind()方法。在音樂播放器中,使用Context.startService()方法啟動(dòng),音樂服務(wù)會(huì)通過Intent來查看要播放哪首歌曲并開始播放。6.1.2生命周期兩種不同的啟動(dòng)方式?jīng)Q定了服務(wù)的生命周期不完全相同,但這兩種服務(wù)過程并非完全對立的,有時(shí)候我們需要將它們結(jié)合起來使用。6.2遠(yuǎn)程服務(wù)遠(yuǎn)程服務(wù)(RemoteService)用于Android系統(tǒng)內(nèi)部的應(yīng)用程序之間。可以通過自己定義并暴露出來的接口進(jìn)行程序操作。應(yīng)用程序建立一個(gè)到服務(wù)對象的連接,并通過那個(gè)連接來調(diào)用服務(wù)。連接以調(diào)用Context.bindService()方法建立,以調(diào)用Context.unbindService()關(guān)閉。多個(gè)應(yīng)用程序可以綁定至同一個(gè)服務(wù)。如果服務(wù)此時(shí)還沒有加載,Context.bindService()會(huì)先加載它。可被其他應(yīng)用程序復(fù)用,比如天氣預(yù)報(bào)服務(wù),其他應(yīng)用程序不需要再寫這樣的服務(wù),調(diào)用已有的即可。在Android系統(tǒng)中,一個(gè)進(jìn)程通常不能直接訪問其他進(jìn)程的內(nèi)存空間。如果要在不同的進(jìn)程間傳遞對象,需要把對象解析成操作系統(tǒng)能夠理解的數(shù)據(jù)格式。Android采用AIDL(接口定義語言)的方式實(shí)現(xiàn)。AIDL是一種接口定義語言,用于約束兩個(gè)進(jìn)程間的通訊規(guī)則,編譯器會(huì)生成它的代碼,從而實(shí)現(xiàn)Android設(shè)備上的兩個(gè)進(jìn)程間通信(IPC)。6.3服務(wù)小實(shí)例MsgService類是如何完成“客戶端定時(shí)與服務(wù)器進(jìn)行交互獲得最新的話題、私信以及好友的信息,并在界面中進(jìn)行提示、刷新”大等功能的?
MsgService類繼承自Service類,實(shí)現(xiàn)了其中的onCreate、onStart、onBind與onDestroy方法,同時(shí)也實(shí)現(xiàn)了接口Runnable和其中的run()方法。onCreate方法初始化Service,并獲得當(dāng)前登錄用戶的用戶名與密碼信息,為請求服務(wù)器的參數(shù)設(shè)置做好準(zhǔn)備。onStart方法利用Runnable開啟一個(gè)線程,運(yùn)行run方法,進(jìn)行服務(wù)器的數(shù)據(jù)請求,在線程中請求是為了防止程序內(nèi)存占用過大。onBind方法是用來綁定服務(wù),在本項(xiàng)目中不要求服務(wù)綁定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黑龍江省五常市輔警招聘考試試題題庫及1套完整答案詳解
- 洗胃考試的試題及答案
- 河南省商丘市夏邑縣2025年九年級(jí)下學(xué)期第二次模擬考試英語試卷(含筆試答案無聽力音頻及原文)
- 2025年四川省崇州市中考數(shù)學(xué)模考模擬試題(無答案)
- 2025年甘肅省隴南市第五次九年級(jí)模擬考試數(shù)學(xué)試題(含部分答案)
- BIM臨電布置碰撞檢查應(yīng)用實(shí)踐
- 2025年深圳市電子產(chǎn)品采購合同范本
- 2025年農(nóng)產(chǎn)品買賣合同
- Chlorpheniramine-d6-Chlorphenamine-d-sub-6-sub-生命科學(xué)試劑-MCE
- 2025屆高考物理大一輪復(fù)習(xí)課件 第四章 第18課時(shí) 拋體運(yùn)動(dòng)
- 有載分接開關(guān)技術(shù)交流課件
- DB51T 1349-2011 油菜脫粒機(jī)規(guī)范
- DB31∕T 1148-2019 水量計(jì)量差錯(cuò)的退補(bǔ)水量核算方法
- 《高低壓配電室施工工藝標(biāo)準(zhǔn)》
- 工務(wù)安全與應(yīng)急處理
- 2021熱性驚厥臨床路徑
- 鋼結(jié)構(gòu)雨棚吊裝方案
- GB/Z 44047-2024漂浮式海上風(fēng)力發(fā)電機(jī)組設(shè)計(jì)要求
- 2024年江蘇省南通市中考地理試題卷(含答案)
- 2024年遼寧省中考數(shù)學(xué)真題卷及答案解析
- 水南公寓(ABC)地塊設(shè)計(jì)采購施工(EPC)總承包項(xiàng)目技術(shù)標(biāo)
評(píng)論
0/150
提交評(píng)論