成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊Service(一)

移動(dòng)開(kāi)發(fā) Android
ervice作為Android中四大組件之一,擁有重要的地位。Service具有和Activity一樣的級(jí)別,只是沒(méi)有界面,是運(yùn)行于后臺(tái)的服務(wù)。這個(gè)運(yùn)行“后臺(tái)”是指不可見(jiàn),不是指在后臺(tái)線程中,事實(shí)上四大組件都是運(yùn)行在UI線程中,都不能在各自的生命周期方法中執(zhí)行耗時(shí)操作或者網(wǎng)絡(luò)請(qǐng)求。Service的應(yīng)用場(chǎng)景還是比較多的,比如說(shuō)在后臺(tái)播放音樂(lè)、實(shí)時(shí)去更新當(dāng)前地理位置的變化、新聞APP后臺(tái)去離線緩存內(nèi)容、進(jìn)程間通信等。

Service作為Android中四大組件之一,擁有重要的地位。Service具有和Activity一樣的級(jí)別,只是沒(méi)有界面,是運(yùn)行于后臺(tái)的服務(wù)。這個(gè)運(yùn)行“后臺(tái)”是指不可見(jiàn),不是指在后臺(tái)線程中,事實(shí)上四大組件都是運(yùn)行在UI線程中,都不能在各自的生命周期方法中執(zhí)行耗時(shí)操作或者網(wǎng)絡(luò)請(qǐng)求。Service的應(yīng)用場(chǎng)景還是比較多的,比如說(shuō)在后臺(tái)播放音樂(lè)、實(shí)時(shí)去更新當(dāng)前地理位置的變化、新聞APP后臺(tái)去離線緩存內(nèi)容、進(jìn)程間通信等。

Service主要可以分為兩類:Local Service、Remote Service。比較常用的還是本地服務(wù),應(yīng)用于程序內(nèi)部。可以通過(guò)Context.startService()啟動(dòng)Service,通過(guò)Context.stopService()結(jié)束服務(wù)。同時(shí)也可以Context.bindService()來(lái)綁定一個(gè)service服務(wù)自己,也可以通過(guò)Context.unbindService()解綁。無(wú)論調(diào)用多少次startService,只需一句stopService就終結(jié)服務(wù)了。

Remote Service 用于android系統(tǒng)內(nèi)部的應(yīng)用程序之間。可以定義接口并把接口暴露出來(lái),以便其他應(yīng)用進(jìn)行操作。客戶端建立到服務(wù)對(duì)象的連接,并通過(guò)那個(gè)連接來(lái)調(diào)用服務(wù)。調(diào)用Context.bindService()方法建立連接,并啟動(dòng),以調(diào)用 Context.unbindService()關(guān)閉連接。多個(gè)客戶端可以綁定至同一個(gè)服務(wù)。如果服務(wù)此時(shí)還沒(méi)有加載,bindService()會(huì)先加載它。

啟動(dòng)Service的方式有兩種,那對(duì)應(yīng)著的是Service的兩種生命周期。看下Google官方的配圖,簡(jiǎn)單直白明了,我就不再贅述了。

 

由于start和stop的方式來(lái)控制服務(wù)的方式比較簡(jiǎn)單,在此也就不多贅述了。只是還需提醒在這種方式下,Activity與Service的通信就顯 得不那么直白簡(jiǎn)單了,因?yàn)槲覀兡貌坏絊ervice的引用。如果你通過(guò)單例的形式去拿到Service的引用,進(jìn)而獲取其中的方法和屬性也未嘗不可,但是 入侵性比較嚴(yán)重,在此不推薦大家使用這種辦法。比較好的實(shí)現(xiàn)Activity和Service之間通信的是另一個(gè)重要的組件 BroadCastReceiver,下面的實(shí)例中會(huì)用到。

實(shí)戰(zhàn)使用的是一個(gè)簡(jiǎn)單的音樂(lè)播放器。當(dāng)然了,使用的是bind和unbind的方式。bind即綁定服務(wù),unbind即解綁服務(wù),也進(jìn)而調(diào)用了 Service的onDestroy方法銷毀。bind可以直接拿到Service的引用,能直接操控service。bind可以用在當(dāng)前應(yīng)用中的業(yè)務(wù) 處理,也可以通過(guò)AIDL實(shí)現(xiàn)進(jìn)程間通信。本文先介紹第一種。簡(jiǎn)單介紹下這個(gè)Demo實(shí)現(xiàn)的功能,它會(huì)播放手機(jī)SD卡上的一首歌曲,你可以對(duì)其開(kāi)始和暫停 操作,界面會(huì)展示歌曲的時(shí)長(zhǎng)以及歌曲播放的實(shí)時(shí)位置。兩者的交互的實(shí)現(xiàn)方式:1、類引用的直接調(diào)用   2、廣播機(jī)制,Service發(fā),Activity接收。

一、在MusicService中新建內(nèi)部類MyBinder,其中有個(gè)公有方法返回Service的實(shí)例

 

二、通過(guò)MusicService中的onBind方法返回MyBinder的實(shí)例,供Activity綁定成功后的回調(diào)

 

三、和Activity一樣,需要在manifest中注冊(cè)

 

四、Activity中綁定,獲得回調(diào)的Binder,進(jìn)而得到MusicService實(shí)例

 

五、拿到了MusicService的引用了,終于可以操作service去播放暫停音樂(lè)了

 

六、在Activity的onDestroy方法中,記得對(duì)Service進(jìn)行解綁。不然會(huì)和注冊(cè)的BroadCastReceiver一樣,會(huì)造成內(nèi)存泄漏

 

代碼地址:https://github.com/JackCho/ServiceDemo1

本文鏈接:http://my.oschina.net/u/1171391/blog/292672

責(zé)任編輯:chenqingxiang 來(lái)源: oschina
相關(guān)推薦

2014-07-31 10:57:15

Android組件Service

2023-12-06 08:26:19

Service數(shù)據(jù)庫(kù)

2021-12-10 18:19:14

授權(quán) Linkerd策略

2020-05-06 22:07:53

UbuntuLinux操作系統(tǒng)

2021-06-21 14:52:45

磁盤(pán)機(jī)械磁盤(pán)固態(tài)磁盤(pán)

2021-02-04 15:08:37

Vue漸進(jìn)式框架

2024-02-20 21:34:16

循環(huán)GolangGo

2023-07-31 07:48:43

Java內(nèi)存虛擬機(jī)

2021-08-27 07:06:10

IOJava抽象

2022-12-07 09:01:14

布局容器VStack?

2021-06-08 06:13:16

React開(kāi)發(fā)開(kāi)發(fā)技術(shù)

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-09-21 08:05:49

Mybatis插件開(kāi)發(fā)

2023-06-30 08:18:51

敏捷開(kāi)發(fā)模式

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-09-21 08:16:56

JDK 21向量計(jì)算計(jì)算

2023-09-10 21:42:31

2020-11-25 07:43:07

Java

2021-11-05 07:59:25

HashMapJava知識(shí)總結(jié)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91麻豆精品一区二区三区 | 国产精品一区二区久久 | 亚洲国产精品视频 | 99精品在线观看 | 国产精品久久久久久久久久 | 国产欧美精品一区 | 欧美八区| 精品国产一区二区国模嫣然 | 久久精品欧美一区二区三区麻豆 | 亚洲播放一区 | 99久久久久| 91色视频在线观看 | 黄网免费看 | 免费在线性爱视频 | 伊人久久国产 | 成人午夜高清 | 免费看一区二区三区 | 中国一级特黄真人毛片免费观看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 国产成人精品一区二 | 国产精品久久久久久久久久久久 | 亚洲精品成人av久久 | 夫妻午夜影院 | 国产久 | 久久人体| 综合久久国产 | 日韩成人性视频 | 国产亚洲成av人在线观看导航 | 欧美一区免费 | 精品视频一区二区三区在线观看 | 久久久久久久久国产成人免费 | 国产精品视频网 | 亚洲欧美一区二区三区视频 | 成人一区二区三区在线观看 | 国产成人精品一区二区三区网站观看 | 天堂中文字幕av | 国产精品一区二区欧美黑人喷潮水 | 国产高潮av| 91xxx在线观看 | 精品九九久久 | 亚洲欧美一区二区三区情侣bbw |