日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android服务的原理,Android学习笔记:IntentService

發(fā)布時(shí)間:2025/3/19 Android 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android服务的原理,Android学习笔记:IntentService 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一般我們所使用的Service是運(yùn)行在主線程當(dāng)中的,所以在Service里面編寫(xiě)耗時(shí)的操作代碼,會(huì)造成主線程卡頓會(huì)ANR。為了解決這樣的問(wèn)題,谷歌引入了IntentService。

如果有一個(gè)任務(wù),可以分成很多個(gè)子任務(wù),需要按照順序來(lái)完成,如果需要放到一個(gè)服務(wù)(Service)中完成,那么使用IntentService是最好的選擇。

一、IntentService的優(yōu)點(diǎn)

(1)它創(chuàng)建一個(gè)獨(dú)立的工作線程來(lái)一個(gè)一個(gè)處理所有Intent。

(2)創(chuàng)建了一個(gè)工作隊(duì)列,來(lái)逐個(gè)發(fā)送Intent給onHandleIntent()

(3)不需要主動(dòng)調(diào)用stopSelf()來(lái)結(jié)束服務(wù),因?yàn)樵创a里面自己實(shí)現(xiàn)了自動(dòng)關(guān)閉。

(4)默認(rèn)實(shí)現(xiàn)了onBind()返回的null。

(5)默認(rèn)實(shí)現(xiàn)了onStartCommand()方法,目的是將intent插入到工作隊(duì)列。

總結(jié):(使用IntentService的好處)首先,省去了手動(dòng)開(kāi)線程的麻煩;第二,不用手動(dòng)停止Service;第三,由于設(shè)計(jì)了工作隊(duì)列,可以啟動(dòng)多次startService(),但是只有一個(gè)Service實(shí)例和一個(gè)工作線程。按順序一個(gè)一個(gè)執(zhí)行。

二、IntentService原理及作用

1、原理

IntentService是繼承Service的一個(gè)抽象類(lèi),它在onCreate()方法中創(chuàng)建了一個(gè)HandlerThread,并啟動(dòng)該線程。HandlerThread是帶有自己消息隊(duì)列和Looper的線程,根據(jù)HandlerThread的looper創(chuàng)建一個(gè)Handler,這樣IntentService的ServiceHandler的HandleMessage()方法就運(yùn)行在子線程中。HandleMessage中調(diào)用了onHandleIntent()方法,它是一個(gè)抽象方法,繼承IntentService類(lèi)需要實(shí)現(xiàn)該方法,把耗時(shí)操作放在onHandleIntent()方法中,等耗時(shí)操作運(yùn)行完成后,會(huì)調(diào)用stopSelf()方法,服務(wù)會(huì)調(diào)用onDestory()方法消毀自己。如果onHandleIntent()方法中的耗時(shí)操作未運(yùn)行完前就調(diào)用了stopSelf()方法,服務(wù)調(diào)用onDestory()方法,但耗時(shí)操作會(huì)繼續(xù)運(yùn)行,直至運(yùn)行完畢。如果同時(shí)多次啟動(dòng)IntentService,任務(wù)會(huì)放在一個(gè)隊(duì)列中,onCreate()和onDestory()方法都只會(huì)運(yùn)行一次。

2、作用

用來(lái)處理后臺(tái)耗時(shí)操作,如讀取數(shù)據(jù)庫(kù)或是本地文件等。

總結(jié)

以上是生活随笔為你收集整理的android服务的原理,Android学习笔记:IntentService的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。