從事Android以來的相關(guān)總結(jié)4-BroadcastReceiver廣播接收者

BroadcastReceiver廣播接收者

系統(tǒng)的一些事件取董,比如來電,來短信咬扇,等等甲葬,會發(fā)廣播廊勃;可監(jiān)聽這些廣播懈贺,并進行一些處理;

Android3.2以后坡垫,為了安全起見梭灿,對于剛安裝的應(yīng)用,需要通過點擊進入應(yīng)用(界面冰悠,用戶確認之后)堡妒,接收者才能起作用;

以后即使沒有啟動其界面溉卓,也能接收到廣播皮迟;

1、定義廣播接收者

1)定義類繼承BroadcastReceiver桑寨,重寫onReceive方法

2)清單文件中聲明伏尼,需要在其中配置指定接收廣播的類型;

3)當接收到匹配廣播之后就會執(zhí)行onReceive方法尉尾;

4)有序廣播中爆阶,如果要控制多個接收者之間的順序,可在配置priority屬性沙咏,系統(tǒng)默認為0辨图,值越大,優(yōu)先級越高肢藐;

5)BroadcastReceiver除了在清單文件中聲明故河,也可以在代碼中聲明,使用registerReceiver方法注冊Receiver吆豹;


2鱼的、廣播的分類

1)普通廣播:

普通廣播不可中斷杉女,不能互相傳遞數(shù)據(jù);

2)有序廣播:

廣播可中斷鸳吸,通過調(diào)用abortBroadcast()方法熏挎;

接收者之間可以傳遞數(shù)據(jù);

3晌砾、廣播接收者的注冊方式

4大組件中坎拐,只有廣播接收者是一個非常特殊的組件,其他3大組件都需要在清單文件中注冊养匈;

廣播接收者哼勇,有2中注冊方式:清單文件與代碼方式,區(qū)別:

1)清單文件注冊廣播接收者呕乎,只要應(yīng)用程序被部署到手機上积担,就立刻生效,不管進程是否處于運行狀態(tài)猬仁;

2)代碼方式帝璧,如果代碼運行了,廣播接收者才生效湿刽,如果代碼運行結(jié)束的烁,廣播接收者,就失效诈闺;

這屬于動態(tài)注冊廣播渴庆,臨時用一下,用的時候雅镊,register襟雷,不用時unregister;

代碼方式示例:


4仁烹、發(fā)送廣播

1)發(fā)送普通廣播

①耸弄、使用sendBroadcast()方法可發(fā)送普通廣播;

②晃危、通過Intent確定廣播類型叙赚,可攜帶數(shù)據(jù),所有接收者都可以接收到數(shù)據(jù)僚饭,數(shù)據(jù)不能被修改震叮,不會中斷;

接收者無序(試驗測試鳍鸵,是按照安裝順序來接收的);

③苇瓣、廣播時,可設(shè)置接收者權(quán)限偿乖,僅當接收者含有權(quán)限才能接收击罪;

④哲嘲、接收者的也可設(shè)置發(fā)送方權(quán)限,只接受含有相應(yīng)權(quán)限應(yīng)用的廣播媳禁;

發(fā)送者:

Intent intent = newIntent("com.itheima.broadcast.TEST");//指定動作眠副;接收者,需要配置intent filter才能接受到此廣播

intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);//包含未啟動的過的應(yīng)用(也可以收到廣播)竣稽,默認為不包含

intent.putExtra("data", "這是來著廣播發(fā)送者發(fā)來的賀電");//廣播發(fā)送者intent中的數(shù)據(jù)囱怕,接收者,修改不了

sendBroadcast(intent, null);//發(fā)送無序廣播毫别,異步獲取數(shù)據(jù)娃弓,不可中斷,接收者之間不可傳數(shù)據(jù)

接收者:

public class AReceiver extendsBroadcastReceiver {

publicvoid onReceive(Context context, Intent intent) {

System.out.println("AReceiver:" +intent.getStringExtra("data"));

}

}

注意:

如果要在廣播接收者中打開Activity岛宦,需要設(shè)置一下Intent.FLAG_ACTIVITY_NEW_TASK台丛,因為廣播接收者是沒有Activity任務(wù)棧的

所以需要加上這個標記,方能在廣播接收者中打開Activity砾肺,如:


2)發(fā)送有序廣播

a.sendOrderedBroadcast()發(fā)送有序廣播挽霉;

b.通過Intent確定廣播類型,攜帶數(shù)據(jù),Intent的數(shù)據(jù)同樣修改無效债沮;

c.跟普通廣播一樣炼吴,也可以設(shè)置相應(yīng)的權(quán)限;

d.接收者可在定義android:priority定義優(yōu)先級疫衩,數(shù)字越大,優(yōu)先級越高荣德;

e.有序廣播會被接收者逐個接收闷煤,中途可以中斷,或添加涮瞻、修改數(shù)據(jù)鲤拿;

f.可以指定一個自己的廣播接收者,這個接收者將最后一個收到廣播、不會被中斷署咽、不需要任何權(quán)限近顷、不需要配置;

g.可以指定一個Handler用來在自己的接收者中進行線程通信宁否;

發(fā)送者:


接收者AReceive


接收者BReceive:代碼及配置與上類似窒升,只是優(yōu)先級比A的低

5、廣播的生命周期

a.廣播接收者的生命周期非常短暫的慕匠,在接收到廣播的時候創(chuàng)建饱须,onReceive()方法結(jié)束之后銷毀;

b.廣播接收者中不要做一些耗時的工作台谊,否則會彈出Application No Response錯誤對話框蓉媳;

c.最好也不要在廣播接收者中創(chuàng)建子線程做耗時的工作譬挚,因為廣播接收者被銷毀后進程就成為了空進程,很容易被系統(tǒng)殺掉酪呻;

d.耗時的較長的工作最好放在服務(wù)中完成减宣;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市玩荠,隨后出現(xiàn)的幾起案子蚪腋,更是在濱河造成了極大的恐慌,老刑警劉巖姨蟋,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屉凯,死亡現(xiàn)場離奇詭異,居然都是意外死亡眼溶,警方通過查閱死者的電腦和手機悠砚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堂飞,“玉大人灌旧,你說我怎么就攤上這事〈律福” “怎么了枢泰?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長铝噩。 經(jīng)常有香客問我衡蚂,道長,這世上最難降的妖魔是什么骏庸? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任毛甲,我火速辦了婚禮,結(jié)果婚禮上具被,老公的妹妹穿的比我還像新娘玻募。我一直安慰自己,他們只是感情好一姿,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布七咧。 她就那樣靜靜地躺著,像睡著了一般叮叹。 火紅的嫁衣襯著肌膚如雪艾栋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天衬横,我揣著相機與錄音裹粤,去河邊找鬼。 笑死,一個胖子當著我的面吹牛遥诉,可吹牛的內(nèi)容都是我干的拇泣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼矮锈,長吁一口氣:“原來是場噩夢啊……” “哼霉翔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苞笨,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤债朵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瀑凝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體序芦,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年粤咪,在試婚紗的時候發(fā)現(xiàn)自己被綠了谚中。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡寥枝,死狀恐怖宪塔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囊拜,我是刑警寧澤某筐,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站冠跷,受9級特大地震影響南誊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蔽莱,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一弟疆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盗冷,春花似錦、人聲如沸同廉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫肖。三九已至锅劝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蟆湖,已是汗流浹背故爵。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隅津,地道東北人诬垂。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓劲室,卻偏偏與公主長得像,于是被迫代替她去往敵國和親结窘。 傳聞我的和親對象是個殘疾皇子很洋,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容