溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Service,BroadcastReceiver基礎(chǔ)

發(fā)布時(shí)間:2020-07-24 00:09:40 來(lái)源:網(wǎng)絡(luò) 閱讀:356 作者:JustMetU 欄目:移動(dòng)開發(fā)

一.Service


  1. Service是一種可以在后臺(tái)長(zhǎng)期運(yùn)行且不提供用戶UI的程序,常用來(lái)處理一些耗時(shí)操作性操作,如網(wǎng)絡(luò)傳輸或播放音樂(lè)。


2.Service可以分為有限生命和無(wú)限生命,當(dāng)系統(tǒng)資源不足是,Activity可能被殺掉,但Service不會(huì)。


3.啟動(dòng)Service需要在清單文件中聲明<Service>標(biāo)簽。啟動(dòng)Service有兩種方式:

Context.startService()【不綁定,無(wú)限生命】和Context.bindService()【綁定,有限生命】.

   a.startService()調(diào)用onstartCommand()方法,銷毀時(shí)直接調(diào)用onDestroy()方法。

   b.bindService()調(diào)用onBind()返回客戶端的一個(gè)IBinder接口,當(dāng)沒(méi)有任何對(duì)象綁定Service時(shí),      Service會(huì)被系統(tǒng)銷毀。





二.BroadcastReceiver



廣播是Android系統(tǒng)應(yīng)用程序之間通信的手段,當(dāng)有特定事件發(fā)生時(shí),如來(lái)電、來(lái)短信、電池電量變化時(shí),Android系統(tǒng)都會(huì)產(chǎn)生特定的Intent對(duì)象并自動(dòng)進(jìn)行廣播,而針對(duì)特定事件注冊(cè)BroadcastReceiver可以接收到這些廣播,并獲取到Intent對(duì)象中的數(shù)據(jù)進(jìn)行處理。

在廣播Intent對(duì)象時(shí)可以指定用戶權(quán)限,只有獲得了相應(yīng)權(quán)限的BroadcastReceiver才能接收并處理相應(yīng)的廣播。


一個(gè)BroadcastReceiver對(duì)象只有在被調(diào)用了onReceive()時(shí)才有效,當(dāng)從該函數(shù)返回時(shí),該對(duì)象就無(wú)效了,生命周期也就結(jié)束了。


不能生成ui,通過(guò)NotificationManager來(lái)通知用戶有事情發(fā)生。



實(shí)例:


前面的檢測(cè)手機(jī)電量實(shí)例。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI