廣播那些事

2021-09-19 12:52:44 字數 1066 閱讀 7864

android 中的廣播主要可以分為兩種型別,標準廣播和有序廣播。

首先要自定義乙個廣播接收器,繼承broadcastreceiver,然後複寫onreceive() 方法,像這樣:

public class myreceiver extends broadcastreceiver 

}

其次,就要進行廣播的註冊,註冊主要有兩種形式:

靜態註冊:在androidmanifest.xml中新增註冊

動態註冊:盡量在onresume() 和 onpause()中進行廣播的註冊和銷毀

private myreceiver mmyreceiver;

if (mmyreceiver == null)

最後不能忘記要銷毀動態廣播

//廣播動態銷毀

unregisterreceiver(mmyreceiver);

不管是靜態註冊還是動態註冊,他們的共同點:

所以在廣播中不能做耗時操作,否則就會導致anr

靜態註冊和動態註冊的區別主要從這三個方面來看:

使用方式

動態註冊:在**中呼叫context.registerreceiver

靜態註冊:在androidmanifest.xml通過標籤宣告

特點動態註冊:跟隨元件的生命週期變化

靜態註冊:常駐程序中,不受元件生命週期影響(即使應用程式關閉,如果有廣播傳送,程式依然會被系統喚醒呼叫)

應用場景

靜態註冊:需要時刻監聽廣播(比如在效能優化時,計算每隔一段時間的網路訪問量)

動態註冊:需要在特定時刻接受廣播(可根據業務場景選擇)

廣播接收器更多的是扮演一種開啟程式其他元件的角色,例如建立一條狀態列通知,或者啟動乙個服務等。

android中的廣播使用了觀察者模式,角色分配:

訊息訂閱者(廣播接受者)

訊息發布者(廣播發布者)

訊息中心(activity manager service,即ams)

原理簡述:

那些人,那些事

很久沒有整理一下自己的思緒,聽著熟悉的歌,那歌聲會讓我想起那些人,那些事.乙個標點,乙個符號,乙個個早已在歲月深處冰封的眼神,一段沒有伴侶的歸途。一直以來我都認為我的人生就是這樣,平平淡淡,安安靜靜,波瀾不驚地在歲月的 眼角劃過,不留絲毫痕跡。現在看來,原來我寫的東西在很大程度上是是在滿足自己的某種...

那些人,那些事

一年前的今天,我大概和bi11一起奔波於各大招聘會上,白天各睡各的覺,晚上一起在工作室寫著程式 那時候似乎成都已經很冷,工作室有著溫暖的空調.而現在猛烈的陽光一件薄薄的襯衫真讓我不敢相信已經是十一月了.我在成都待了四年,說實話我不喜歡成都,不過還是有著很多讓人快樂的人和事給了我很多快樂的回憶.先說說...

那些人,那些事

回顧一下自己的it職業生涯,應該和大多數同僚一樣,從無知還有些自負的毛頭小子,到在技能上還算熟練,在性格上也變得成熟的奔三人士,在這個過程中給我最大的感覺就是越學習越發現自己懂得東西少,在職場上越來越感覺到僅僅靠技術層面上的提高是不能讓我們大多數人成功的。在自己目前的職業生涯中經歷過太多人太多事,大...