廣播機制小結

在Android系統中,廣播是在組件之間傳遞數據(通信)的一種機制,這些組件可以是在不同的進程中,就像Binder機制一樣,起到進程間通信的作用。廣播機制是一種消息發佈/訂閱模式的事件驅動模型,消息的生產者發佈事件,而使用者訂閱感興趣的事件。
Android中的廣播主要分爲兩種:
1. 標準廣播(Normal broadcasts):是一種完全異步執行的廣播,當一條廣播發出去以後,所有的廣播接收者幾乎同一時刻收到這條廣播消息,這種廣播的效率比較高,但是無法被攔截。
2. 有序廣播(Ordered broadcasts):是一種同步執行的廣播,當一條廣播發出去以後,同一時刻只能有一個廣播接收者接收到這個廣播,當這個廣播接收器中的邏輯執行完成後,該廣播纔會繼續傳遞下去。優先級高的廣播接收器會先接收到廣播,如果此時對該廣播進行了攔截,那麼在廣播接收器邏輯執行完成後,該廣播將不會傳遞下去。Android系統的中的短息,電話等都是有序廣播,因此一些安全軟件可以劫持這些廣播,攔截垃圾短信和電話等。
廣播有兩種註冊方式
1. 動態註冊:動態註冊的廣播可以自由的控制廣播的註冊與註銷,靈活性高,但是必須在應用啓動後才能接收到廣播。
2. 靜態註冊:靜態註冊廣播是在AndroidManifest.xml文件中註冊廣播接收器,靜態註冊的廣播接收器不需要在程序運行就可以接收到廣播。

還有一種廣播類型就是本地廣播,前面說的廣播都是全局廣播,也就是說發出的廣播可以被其他應用程序接收到,我們也可以接收其他應用程序發送的廣播,這樣存在一些安全問題。如果我們就想在自己應用程序內發送廣播並攜帶一些私有數據,那麼就要用本地廣播了。

Note:在廣播接收器的receive()方法裏,不能執行耗時的操作,一旦此方法裏的操作時間超過10秒,就很可能產生ANR.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章