2022年3月26日 星期六

android studio:BroadcastReceiver

 BroadcastReceiver 為廣播功能,就像是我們在日常生活中的廣播一樣,它有播放的一方,也有接收的一方。廣播有靜態註冊及動態註冊兩種方法。下面先說比較常用的動態註冊方法,再來說較少用的靜態註冊方法。

一、動態註冊的方法

(1)廣播的方法

Intent intent=new Intent("fromService"); //宣告一個intent,名稱為fromService
intent.putExtra("wherenow",mediaPlayer.getCurrentPosition());
//設定intent要傳送的資料,參數一為值的名稱,後為資料
sendBroadcast(intent); //透過廣播的方法送出

(2)接收的方法
myReceiver =new MyReceiver(); //建立接收器
IntentFilter filter=new IntentFilter("fromService");
//建立授收的過濾器,參數為過濾器選擇的名單,只接受intent傳過來名為"fromService"的資料
registerReceiver(myReceiver, filter);
//註冊接收器及過濾名單

上面myReceiver是MyReceiver類別的新建物件,MyReceiver的寫法如下,可在裡面處理讀取的數據。
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//參數一為內容,參數二為傳過來的intent
String name = intent.getStringExtra("wherenow"); //利用getStringExtra取得intent傳過來的值
}

(3)撤消Receiver
unregisterReceiver(MyReceive);

二、靜態註冊的方法
暫時不寫,請看參考網頁。



參考網頁:
https://xnfood.com.tw/android-broadcastreceiver/


沒有留言:

張貼留言