應用程式本身也可以發出廣播訊息,可以做為其他應用程式溝通的管道
廣播訊息是公開的,任何的應用程式都可以透過註冊Broadcast Receiver來接收到你所廣播的訊息,所以信用卡帳號不建議用廣播
一般通常用來作為Services與Activity溝通使用
範例: 是透過Activity發送Broadcast 至Receiver程式,建立一個activity與二個receiver程式,利用Broadcast 呼叫另兩個receiver起來,其寫Broadcast Receivers主要分成兩部分:
1.發送廣播
在程式中透過Intent建立,建立好哪個action filter所接收,接著透過sendBroadcast函式發送出去
2.接收廣播
想接收與處理廣播的Intent,必須註冊Broadcast Receiver來接收到你所廣播的訊息,並且設定一個Intent Filter已將不需要監聽的訊息過濾掉,最後將其註冊Android框架中
建立class(java file)對應剛剛以建立的兩組action,建立後改變繼承於Broadcast Receiver類別,並複寫OnReceive函式,須注意不可以超過五秒,長時間的處理請移至Thread中執行
3.註冊Broadcast Receiver,可以透過AndroidManifest.xml或者程式碼註冊,以便Broadcast產生時對應相對的Receiver;當接收訊息時,彈出通知(Notification),讓使用者知悉
必須要注意的是需要新增兩組action,其action name分別為org.itrc.action.NEW_BROADCAST_1與org.itrc.action.NEW_BROADCAST_2,在xml填入相對應的acyion name給class,這樣透過sendBroadcast(intent)送出,然後BroadcastReceiver接收相對應的action name,這樣程式就可以正常的動作
4.加入接收到BroadcastReceiver時需要產生的訊息透過通知(Notification),透過此方式顯示於畫面上
接收,並產生訊息於狀態列上
清除所有狀態列的訊息
執行結果
沒有留言:
張貼留言
請留言~一起討論吧~