版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、BroadcastReceiver簡介BroadcastReceiver明白得為廣播接收者,它用于接收程序所發(fā)出的Broadcast的Intentc它在一端監(jiān)聽接收廣播消息,然后再做出處置。它的本質上確實是屬于一個監(jiān)聽器。啟動BroadcastRecevicer的方式有兩種:sendBroadcast()和sendOrderedBroadcast(),二者的區(qū)別確實是前者是發(fā)送一個一般的廣播,后者是發(fā)送一個有序的廣播。開發(fā)廣播接收才的步驟:1、繼承BroadcastReceiver類,重寫onReceiver(Contextcontext,Intentintent)方式2、在中注冊,一樣也能夠
2、在代碼中實現注冊3、通過sendBroadcast()或sendOrderedBroadcast()啟動對應的BroadcastReceiver下面別離介紹:實現廣播消息處置機制的方式繼承BroadcastReceiver,覆蓋onReceivejavaviewplaincopyprint?publicclassMyReceiverextendsBroadcastReceiverpublicMyReceiver()System.out.println(-myReceiverconstructor-);publicvoidonReceive(Contextcontext,Intentintent
3、)System.out.println(-onReceive-);/取到信息StringreceiveMsg=intent.getStringExtra(msg);Toast.makeText(context,receiveMsg,Toast.LENGTH_LONG).show();注冊BroadcastReceiver的兩種方式:方式一:中注冊:htmlviewplaincopyprint?方式二:應用程序代碼中注冊javaviewplaincopyprint?myReceiver2=newMyReceiver2();IntentFilte門ntentFilter=newIntentFilt
4、er();Intentintent=newIntent();intentFilter.addAction(SMS_ACTION);registerReceiver(myReceiver2,intentFilter);兩種注冊方式的區(qū)別:1)第一種是常駐型,也確實是說當應用程序關閉后,若是有信息廣播來,程序也會被系統(tǒng)挪用自動運行。2)第二種不是常駐型廣播,也確實是說廣播跟從程序的生命周期。廣播的類型:廣播被分為兩種不同的類型:”一般廣播(Normalbroadcasts)和有序廣播(Orderedbroadcasts)”。一般廣播是完全異步的,能夠在同一時刻(邏輯上)被所有接收者接收到,消息傳遞
5、的效率比較高,但缺點是:接收者不能將處置結果傳遞給下一個接收者,而且無法終止廣播Intent的傳播;但是有序廣播是依照接收者聲明的優(yōu)先級別(聲明在intent-filter元素的android:priority屬性中,數越大優(yōu)先級別越高,取值范圍:-1000到1000。也能夠挪用IntentFilter對象的setPriority()進行設置),被接收者依次接收廣播。如:A的級別高于B,B的級別高于C,那么,廣播先傳給A,再彳專給B,最后傳給C。A取得廣播后,能夠往廣播里存入數據,當廣播傳給B時,B能夠從廣播中取得A存入的數據。Context.sendBroadcast()發(fā)送的是一般廣播,所
6、有定閱者都有機遇取得并進行處置。Context.sendOrderedBroadcast()發(fā)送的是有序廣播,系統(tǒng)會依照接收者聲明的優(yōu)先級別按順序逐個執(zhí)行接收者,前面的接收者有權終止廣播(BroadcastReceiver.abortBroadcast(),若是廣播被前面的接收者終止,后面的接收者就再也無法獲取到廣播。關于有序廣播,前面的接收者能夠將處置結果寄存進廣播Intent,然后傳給下一個接收者。再總結說說兩種廣播的區(qū)別比較:一般廣播:異步,數據不共享,傳遞效率高有序廣播:同步,數據能夠達到共享,傳遞效率低說了這么一大堆,是不是都暈,那就上實例吧實例1:發(fā)送一般廣播1、寫一個繼承于Bro
7、adcastReceiver的類,并重寫onReceiver方式javaviewplaincopyprint?packagecom.jiahui.broadcast;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.widget.Toast;publicclassMyBroadcastReceiverextendsBroadcastReceiverOverridepublicvoidonReceive(Contextco
8、ntext,Intentintent)Toast.makeText(context,”接收到的Intent的Action為+intent.getAction()+n傳遞的消息內容為+intent.getStringExtra(msg),Toast.LENGTH_LONG)在中注冊htmlviewplaincopyprint?5.在Activity中發(fā)送廣播javaviewplaincopyprint?packagecom.jiahui.broadcast;importandroid.app.Activity;importandroid.content.Intent;importandroid.
9、os.Bundle;importandroid.view.View;importandroid.widget.Button;publicclassBroadcastDemo1ActivityextendsActivitypublicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);14.ButtonbtnSend=(Button)this.findViewByld(R.id.btnSend);btnSend.setOnClickListen
10、er(newView.OnClickListener()OverridepublicvoidonClick(Viewv)Intentintent=newIntent();/指定發(fā)送特定的BroadcastReceiverintent.setAction(com.jiahui.broadcast.mybroadcast);/帶一些消息內容過去intent.putExtra(msg,我發(fā)過來的數據哦);sendBroadcast(intent););實現成效:發(fā)送普通廣播發(fā)送普通廣播接收到的Intent的Adi??跒閏om.JIdhuLbrodcast.mybrofidcast傳遞的消息內容為我發(fā)
11、過來的數據啜實例2:發(fā)送有序廣播寫兩個BroadcastReceiver類MyReceiver01.java:javaviewplaincopyprint?packagecom.jiahui.broadcast;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Bundle;importandroid.widget.Toast;publicclassMyReceiver1extendsBroadcastReceiv
12、erpublicvoidonReceive(Contextcontext,Intentintent)System.out.println(MyReceiveU-onReceive-);StringreceiverMsg=intent.getStringExtra(msg);System.out.println(receiverMsg:+receiverMsg);Toast.makeText(context,”接收到的Intnet的action+intent.getAction()+n發(fā)過來的消息內容:+receiverMsg,5000).show();Bundlebundle=newBundl
13、e();bundle.putString(first,第一個廣播接收者給的數據);/放入下一個結果中,讓下一個廣播接收者收到消息setResultExtras(bundle);javaviewplaincopyprint?packagecom.jiahui.broadcast;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Bundle;importandroid.widget.Toast;publicclass
14、MyReceiver2extendsBroadcastReceiverOverridepublicvoidonReceive(Contextcontext,Intentintent)System.out.println(-MyReceiver2-onReceive-);取到結果Bundlebundle=getResultExtras(true);StringreceiverMsg=bundle.getString(first);System.out.println(receiverMsg:+receiverMsg);Toast.makeText(context,”接收到的Intnet的acti
15、on+intent.getAction()+n發(fā)過來的消息內容:+receiverMsg,5000).show();在中文件注冊,同時設置為優(yōu)先級htmlviewplaincopyprint?11.注意:那個地址兩個廣播接收者設置的action是一樣開發(fā)Activity在Activity中發(fā)送有序廣播消息javaviewplaincopyprint?packagecom.jiahui.broadcast;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.vi
16、ew.View;importandroid.widget.Button;publicclassBroadcastDemo2ActivityextendsActivitypublicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);ButtonbtnSend=(Button)this.findViewById(R.id.btnSend);btnSend.setOnClickListener(newView.OnClickListener()O
17、verridepublicvoidonClick(Viewv)20.Intentintent=newIntent();intent.setAction(com.jiahui.broadcast.myreceiver););intent.putExtra(msg,發(fā)給第一個接收者的數據發(fā)送有序廣播sendOrderedBroadcast(intent,null););實現成效:發(fā)送有序廣播接收到的Intnet的actionmmJlBhuLbroadcast.myreceIver發(fā)過來的消息內容:發(fā)皓第一個接收者的數據當一段時刻咱們就能夠夠看到又會彈出一個信息如以下圖:也能夠通過操縱臺監(jiān)視:11-140733pl-1407.3J11-14073111-14073JrSyste號?營taSystereceiverMsg發(fā)愴采一個幫收卷的數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新能源行業(yè)存貨質押貸款專項合同2篇
- 2025年度個人技術入股收益分配合同范本4篇
- 2025年度房地產項目融資擔保借款合同樣本4篇
- 二零二五年度門窗行業(yè)市場推廣與宣傳合同4篇
- 二零二五年智慧社區(qū)安防監(jiān)控系統(tǒng)安裝合同5篇
- 二零二五年度城市廣場場地租賃合同2篇
- 2025年度全國棉花運輸服務合同范本4篇
- 二零二五年外墻涂料翻新工程施工安全監(jiān)管與隱患排查合同3篇
- 2025年度特種用途面包車租賃合同范本4篇
- 2025年度企業(yè)員工股票購買貸款合同終止后貸款處理協議
- 運動技能學習與控制課件第十一章運動技能的練習
- 蟲洞書簡全套8本
- 射頻在疼痛治療中的應用
- 四年級數學豎式計算100道文檔
- “新零售”模式下生鮮電商的營銷策略研究-以盒馬鮮生為例
- 項痹病辨證施護
- 職業(yè)安全健康工作總結(2篇)
- 懷化市數字經濟產業(yè)發(fā)展概況及未來投資可行性研究報告
- 07FD02 防空地下室電氣設備安裝
- 教師高中化學大單元教學培訓心得體會
- 彈簧分離問題經典題目
評論
0/150
提交評論