Android Service知識梳理

      網(wǎng)友投稿 997 2025-04-03

      startService第一次啟動會調(diào)用onCreate,onCreate只會在創(chuàng)建的時(shí)候調(diào)用一次,之后多次啟動會多次調(diào)用onStartCommand。stopService會停止Service,多次調(diào)用stopService不會報(bào)錯。

      bindService第一次啟動會依次調(diào)用onCreate->onBind->onServiceConnected。多次調(diào)用bindService,?onBind和onServiceConnected都不會多次回調(diào)。多次調(diào)用unBindService會報(bào)錯。

      START_STICKY:如果service進(jìn)程被kill掉,保留service的狀態(tài)為開始狀態(tài),但不保留遞送的intent對象。隨后系統(tǒng)會嘗試重新創(chuàng)建service,由于服務(wù)狀態(tài)為開始狀態(tài),所以創(chuàng)建服務(wù)后一定會調(diào)用onStartCommand(Intent,int,int)方法。如果在此期間沒有任何啟動命令被傳遞到service,那么參數(shù)Intent將為null。

      START_NOT_STICKY:“非粘性的”。使用這個返回值時(shí),如果在執(zhí)行完onStartCommand后,服務(wù)被異常kill掉,系統(tǒng)不會自動重啟該服務(wù)。

      START_REDELIVER_INTENT:重傳Intent。使用這個返回值時(shí),如果在執(zhí)行完onStartCommand后,服務(wù)被異常kill掉,系統(tǒng)會自動重啟該服務(wù),并將Intent的值傳入。

      START_STICKY_COMPATIBILITY:START_STICKY的兼容版本,但不保證服務(wù)被kill后一定能重啟。

      服務(wù)在其托管進(jìn)程的主線程中運(yùn)行的

      開啟服務(wù)的組件退出之后,服務(wù)還是可以在后臺長期運(yùn)行的。其他組件可以調(diào)用stopService(Intent)或者自身調(diào)用stopSelf停止

      組件不能調(diào)用服務(wù)里面的方法

      組件銷毀后服務(wù)自動被銷毀,如果一個Service被多個組件綁定,只有所有的組件被銷毀這個服務(wù)才會銷毀

      組件可以調(diào)用服務(wù)里面的方法

      同時(shí)調(diào)用stopService和unbindService才可以回調(diào)onDestory

      都運(yùn)行在主線程

      使用Intent,onStartCommand時(shí)候傳入的Intent

      BroadcastReceiver,Service發(fā)送,Activity接收

      接口回調(diào)

      共享硬盤存儲,共享內(nèi)存

      ServiceConnection

      獲取系統(tǒng)Service一般用getSystemService方法。常見的Service有

      LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);

      ActivityManagerService

      PackageManagerService

      WindowManagerService

      Android Service知識梳理

      不能。因?yàn)榉?wù)在其托管進(jìn)程的主線程中運(yùn)行,它既不創(chuàng)建自己的線程,也不在單獨(dú)的進(jìn)程中運(yùn)行(除非另行指定)。它不可以做密集耗時(shí)的操作。如果非要做的話,可以啟動一個新的線程來工作。

      前臺服務(wù)被認(rèn)為是用戶主動意識到的一種服務(wù),因此在內(nèi)存不足時(shí),系統(tǒng)也不會考慮將其終止。 前臺服務(wù)必須為狀態(tài)欄提供通知,放在“正在進(jìn)行”標(biāo)題下方,這意味著除非服務(wù)停止或從前臺移除,否則不能清除通知。

      要請求讓服務(wù)運(yùn)行于前臺,請調(diào)用?startForeground()。此方法采用兩個參數(shù):唯一標(biāo)識通知的整型數(shù)和狀態(tài)欄的 Notification

      相互喚起,需要借助其他APP

      service 相互使用廣播喚起 (雞肋)

      和手機(jī)商合作 (最高效)

      設(shè)置 service 等級,priority (雞肋)

      onStartCommand方法,返回 START_STICKY,內(nèi)存充足的時(shí)候會重啟 (雞肋)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:【已解決】phpMyAdmin中導(dǎo)入mysql數(shù)據(jù)庫文件時(shí)出錯:您可能正在上傳很大的文件,請參考文檔來尋找解決辦法...
      下一篇:wps文本如何改變圖形位置和大小
      相關(guān)文章
      亚洲乱码一区二区三区国产精品| 亚洲综合久久成人69| 亚洲综合色丁香婷婷六月图片| 亚洲国产美国国产综合一区二区 | 亚洲一级黄色视频| 国产精品亚洲色图| 一级毛片直播亚洲| 亚洲av无码天堂一区二区三区 | 亚洲一区二区三区首页| 亚洲国产成人高清在线观看 | 亚洲成a人片在线不卡一二三区| 亚洲中文字幕乱码熟女在线| 亚洲欧洲av综合色无码| 成人亚洲国产va天堂| 亚洲色精品VR一区区三区| 亚洲人成图片网站| 亚洲小说图区综合在线| 亚洲精品无码久久久久久| 亚洲国产成人AV网站| 深夜国产福利99亚洲视频| 亚洲Aⅴ无码一区二区二三区软件| 国产亚洲精品精品精品| 亚洲成a人片在线观看日本麻豆| 亚洲国产成人影院播放| 狠狠色婷婷狠狠狠亚洲综合| 国产日产亚洲系列| 亚洲国产精品无码AAA片| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲AV人无码激艳猛片| 亚洲色av性色在线观无码| 亚洲国产精品一区二区久| 亚洲人成小说网站色| 日韩国产欧美亚洲v片| 亚洲国产精品综合久久一线| 狠狠综合久久综合88亚洲| 亚洲AV一宅男色影视| 亚洲色大成网站www永久| 2017亚洲男人天堂一| 亚洲AV无码成人精品区日韩| 亚洲国产成人久久精品99 | 亚洲愉拍一区二区三区|