1 為什麼需要廣播接收者?
android內部已經定義好了電台,即定義了一些廣播事件,比如撥打**、接收簡訊、螢幕鎖、電池電量的監聽等等,廣播接收者的任務就是接收這些廣播,並由開發者們將結果展示給使用者。
2 步驟
定義廣播接收者要繼承broadcastreceiver,其中會自動出行 onreceiver()的方法,(注意廣播接收者接收的不是context),在此方法中,如果是在清單檔案中註冊的廣播接收者一般情況用 getresuldata()的方法接收資料,還有一種是用intent 的
getstringextra()方法,注意這點。
特殊的廣播接收者:螢幕鎖,電池電量等。 這類廣播接收者只能在**中動態註冊,在清單檔案靜態註冊無效。
動態註冊的一點**:
screenreceiver=new screenreceiver(); intentfilter filter=new intentfilter(); filter.addaction("android.intent.action.screen_off"); filter.addaction("android.intent.action.screen_on"); //註冊特殊的廣播接收者 registerreceiver(screenreceiver, filter);
有序廣播:一級一級的向下傳遞,有序廣播有乙個「欽差大臣」可以不用再清單檔案註冊,接受廣播的各個級都是修改資料的,由「欽差大臣」最後判斷最後一級能夠收到廣播資訊。
無序廣播:只管發
廣播接收者的事件型別:
android.intent.action.new_outgoing_call
android.provider.telephony.sms_received
android.intent.action.screen_on
android.intent.action.screen_off
android.intent.action.package_install //這個據說是googl大神預留的東東,現在還沒有用
android.intent.action.package_added //安裝apk的事件是這個
android.intent.action.package_removed
廣播接收者
廣播被分為倆種不同的型別,普通廣播和有序廣播,普通廣播是完全非同步的。可以在同一時刻被所有的接收者收到。訊息傳遞的效率比較高,但是缺點是 接收者不能將結果傳遞給下乙個接收者。並且無法終止廣播intent的傳播。然後有序廣播是按照接收者申明的優先級別 申明在intent filter元素的androi...
廣播和廣播接收者
廣播和廣播接收者 1 廣播 就是一對多,就是傳送資訊 2 廣播接收者 就是接收廣播傳送的訊息並做處理 在android中,廣播接收者才是四大元件之一,廣播不是 廣播不會決定誰是接收者,只要是註冊了該廣播,那麼就能成為該廣播的接收者 接收系統傳送的廣播 比如,網路變化,開機狀態,手機的狀態 廣播接收者...
android 限制廣播訊息的接收者
在android系統中sendbroadcast和broadcastreceiver。只要broadcastreceiver指定的action和sendbroadcast action一致就可以就行訊息接收。但是我們有這樣的需求即我傳送的廣播不允許所有應用都可以接收廣播訊息,而是要經過傳送者允許的才...