廣播和廣播接收者

2021-07-24 11:20:21 字數 1418 閱讀 8797

廣播和廣播接收者

(1)廣播:就是一對多,就是傳送資訊

(2)廣播接收者:就是接收廣播傳送的訊息並做處理

在android中,廣播接收者才是四大元件之一,廣播不是

廣播不會決定誰是接收者,只要是註冊了該廣播,那麼就能成為該廣播的接收者

接收系統傳送的廣播:比如,網路變化,開機狀態,手機的狀態

廣播接收者的註冊方式有兩種

(1)動態的註冊:在**裡面註冊

靈活度比較高,但是當activity結束的時候必須解除註冊

註冊的步驟

(1)建立接收者物件

(2)建立intentfilter物件

(3)為intentfilter物件新增action

(4)註冊: registerreceiver(networkreceiver,intentfilter);

解除註冊:

呼叫unregisterreceiver(networkreceiver);

註冊和解除註冊的物件必須是同乙個

(2)靜態的註冊:就是在清單檔案中註冊

使用的是receiver節點:

name屬性指定了要監聽的廣播的型別

傳送自定義的廣播:

廣播的種類分為兩種:

(1)無序廣播

所有的接收者基本是同一時刻接收到廣播,彼此之間沒有任何的關係

(2)有序廣播

優先順序高的廣播接收者會優先接收到廣播資訊,並且可以對廣播資料進行修改或者攔截廣播

傳送無序廣播:

步驟:(1)

傳送廣播的module

intent intent = new intent();

intent.setaction(「com.yunhe.unorderbroadcast」);

sendbroadcast(intent);

action必須要設定,否則匹配

(2)廣播接收者module:

直接在清單檔案中配置receiver就行了,action要跟傳送廣播設定的action 保持一致

傳送有序廣播:

(1)傳送廣播的module

sendorderedbroadcast(intent,null,null,null,1,」100萬」,null);

android:name=".mythirdreceiver">

android:priority="400">

android:name="com.yunhe.orderedbroadcast">

action>

intent-filter>

receiver>

使用priority屬性可以指定廣播接收者的優先順序,優先順序越高的廣播接收者優先接收到廣播,並可以對廣播進行攔截.

廣播接收者

廣播被分為倆種不同的型別,普通廣播和有序廣播,普通廣播是完全非同步的。可以在同一時刻被所有的接收者收到。訊息傳遞的效率比較高,但是缺點是 接收者不能將結果傳遞給下乙個接收者。並且無法終止廣播intent的傳播。然後有序廣播是按照接收者申明的優先級別 申明在intent filter元素的androi...

廣播接收者 BroadcastReceiver

廣播接收者 broadcastreceiver 1,什麼是broadcastreceiver?廣播接收者 broadcastreceiver 用於非同步接收廣播intent,廣播intent的傳送是通過呼叫context.sendbroadcast context.sendorderedbroadc...

簡訊廣播接收者

package com.itheima.mobiesafe.receiver import com.itheima.mobiesafe.r import com.itheima.mobiesafe.service.gpsservice import com.itheima.mobiesafe.ser...