日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
聊聊Service(一)

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

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比滄州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式滄州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋滄州地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

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

Remote Service 用于android系統(tǒng)內(nèi)部的應用程序之間。可以定義接口并把接口暴露出來,以便其他應用進行操作??蛻舳私⒌椒諏ο蟮倪B接,并通過那個連接來調(diào)用服務。調(diào)用Context.bindService()方法建立連接,并啟動,以調(diào)用 Context.unbindService()關(guān)閉連接。多個客戶端可以綁定至同一個服務。如果服務此時還沒有加載,bindService()會先加載它。

啟動Service的方式有兩種,那對應著的是Service的兩種生命周期??聪翯oogle官方的配圖,簡單直白明了,我就不再贅述了。

由于start和stop的方式來控制服務的方式比較簡單,在此也就不多贅述了。只是還需提醒在這種方式下,Activity與Service的通信就顯 得不那么直白簡單了,因為我們拿不到Service的引用。如果你通過單例的形式去拿到Service的引用,進而獲取其中的方法和屬性也未嘗不可,但是 入侵性比較嚴重,在此不推薦大家使用這種辦法。比較好的實現(xiàn)Activity和Service之間通信的是另一個重要的組件 BroadCastReceiver,下面的實例中會用到。

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

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

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

三、和Activity一樣,需要在manifest中注冊

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

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

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

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

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


分享題目:聊聊Service(一)
瀏覽路徑:http://www.5511xx.com/article/dpodhid.html