兩種常用傳送廣播的方式,以及廣播傳值

2021-08-16 00:04:35 字數 1801 閱讀 2745

傳送廣播一般用於相隔多個頁面傳送通知或者傳值的時候用(如果不了解建議先去看一下對廣播的介紹)。

1.第一種傳送廣播的方式

寫在需要傳送廣播的地方(如果不傳值兩行**就可以搞定,很簡單):

string str = "需要傳的內容";

//註冊並傳送廣播(寫在傳送廣播的地方)(意圖:往mainactivity中傳送廣播並傳值,為textview設定內容)

intent intent = new intent("click_position");

//廣播傳值(不需要傳值可以不用寫)

intent.putextra("string", str);

localbroadcastmanager.getinstance(mainactivity.this).sendbroadcast(intent);

寫在接收廣播的地方:

//註冊廣播機制,接收傳來的廣播(意圖:接收來自mainadapter傳來的廣播以及值,用於為textview設定內容)

localbroadcastmanager broadcastmanager = localbroadcastmanager.getinstance(mainactivity.this);

intentfilter intentfilter = new intentfilter();

intentfilter.addaction("click_position");

broadcastreceiver mitemviewlistclickreceiver = new broadcastreceiver()

};broadcastmanager.registerreceiver(mitemviewlistclickreceiver,intentfilter);

2.第二種傳送廣播的方式

寫在需要傳送廣播的地方(傳送兩條廣播寫在不同的類中)

//傳送廣播

intent intent = new intent();

intent.setaction("mainfragmenta");

sendbroadcast(intent);

//傳送廣播

intent intent = new intent();

intent.setaction("mainfragmentb");

sendbroadcast(intent);

接收廣播:

下面的寫在需要接收廣播的類中:

//註冊廣播機制

myreceiver receiver = new myreceiver();

//建立過濾器,並指定action,使之用於接收同action的廣播

intentfilter filter1 = new intentfilter("mainfragmenta");

intentfilter filter2 = new intentfilter("mainfragmentb");

//註冊廣播接收器 

registerreceiver(receiver, filter1);

registerreceiver(receiver, filter2);

下面是新建乙個廣播的類:

private class myreceiver extends broadcastreceiver else if (intent.getaction().equals(action2))

}}

Android 廣播註冊兩種方式

兩種註冊型別的區別是 1 第一種不是常駐型廣播,也就是說廣播跟隨activity的生命週期。注意 在activity結束前,移除廣播接收器。2 第二種是常駐型,也就是說當應用程式關閉後,如果有資訊廣播來,程式也會被系統呼叫自動執行。在android下,要想接受廣播資訊,那麼這個廣播接收器就得我們自己...

Android 監聽wifi廣播的兩種方式

1.xml中宣告 2.中註冊 intentfilter filter new intentfilter filter.addaction wifimanager.network state changed action filter.addaction wifimanager.wifi state ...

Android 程式設計下兩種方式註冊廣播的區別

常駐型廣播 常駐型廣播,當你的應用程式關閉了,如果有廣播資訊來,你寫的廣播接收器同樣的能接收到,它的註冊方式就是在你應用程式的androidmanifast.xml 中進行註冊,這種註冊方式通常又被稱作靜態註冊。這種方式可以理解為通過清單檔案註冊的廣播是交給作業系統去處理的。示例 如下 receiv...