日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/19 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android服务的原理,Android学习笔记:IntentService 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般我們所使用的Service是運行在主線程當中的,所以在Service里面編寫耗時的操作代碼,會造成主線程卡頓會ANR。為了解決這樣的問題,谷歌引入了IntentService。

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

一、IntentService的優點

(1)它創建一個獨立的工作線程來一個一個處理所有Intent。

(2)創建了一個工作隊列,來逐個發送Intent給onHandleIntent()

(3)不需要主動調用stopSelf()來結束服務,因為源碼里面自己實現了自動關閉。

(4)默認實現了onBind()返回的null。

(5)默認實現了onStartCommand()方法,目的是將intent插入到工作隊列。

總結:(使用IntentService的好處)首先,省去了手動開線程的麻煩;第二,不用手動停止Service;第三,由于設計了工作隊列,可以啟動多次startService(),但是只有一個Service實例和一個工作線程。按順序一個一個執行。

二、IntentService原理及作用

1、原理

IntentService是繼承Service的一個抽象類,它在onCreate()方法中創建了一個HandlerThread,并啟動該線程。HandlerThread是帶有自己消息隊列和Looper的線程,根據HandlerThread的looper創建一個Handler,這樣IntentService的ServiceHandler的HandleMessage()方法就運行在子線程中。HandleMessage中調用了onHandleIntent()方法,它是一個抽象方法,繼承IntentService類需要實現該方法,把耗時操作放在onHandleIntent()方法中,等耗時操作運行完成后,會調用stopSelf()方法,服務會調用onDestory()方法消毀自己。如果onHandleIntent()方法中的耗時操作未運行完前就調用了stopSelf()方法,服務調用onDestory()方法,但耗時操作會繼續運行,直至運行完畢。如果同時多次啟動IntentService,任務會放在一個隊列中,onCreate()和onDestory()方法都只會運行一次。

2、作用

用來處理后臺耗時操作,如讀取數據庫或是本地文件等。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。