|
從現實生活中理解廣播機制
一聽到廣播我們第一感覺就會聯想到小時候村里面的廣播,每逢村里有什么活動都是通過廣播發送的。收聽收音機也是一種廣播,在收音機中有很多個廣播電臺,每個廣播電臺播放的內容都不相同。接受廣播時廣播(發送方)并不在意我們(接收方)接收到廣播時如何處理。好比我們收聽交通電臺的廣播,電臺中告訴我們現在在交通狀況如何,但它并不關心我們接收到廣播時做如何做出處理,這不是廣播應該關心的問題,OK,到這里我們從生活中的一些小例子淺淺的理解了一下廣播,那么Android 中的廣播是如何操作的呢?
Android 的廣播機制
在 Android 里面有各種各樣的廣播,比如電池的使用狀態,電話的接收和短信的接收都會產生一個廣播,應用程序開發者也可以監聽這些廣播并做出程序邏輯的處理。下面我畫一張粗略的圖來幫助大家理解廣播的運行機制。
Android 中有各式各樣的廣播,各種廣播在Android 系統中運行,當系統/應用程序運行時便會向 Android 注冊各種廣播,Android 接收到廣播會便會判斷哪種廣播需要哪種事件,然后向不同需要事件的應用程序注冊事件,不同的廣播可能處理不同的事件也可能處理相同的廣播事件,這時就需要Android 系統為我們做篩選。
案例分析:
一個經典的電話黑名單,首先通過將黑名單號碼保存在數據庫里面,當來電時,我們接收到來電廣播并將黑名單號碼與數據庫中的某個數據做匹配,如果匹配的話則做出相應的處理,比如掛掉電話、比如靜音等等。
Demo 分析:
下面通過一個小DEMO 來講解一下廣播在Android 中如何編寫,在Demo中我們設置了一個按鈕為按鈕設置點擊監聽通過點擊發送廣播,在后臺中接收到廣播并打印LOG信息。代碼如下:

public static final String ACTION_INTENT_TEST = "com.terry.broadcast.test";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ACTION_INTENT_TEST);
sendBroadcast(intent);
}
});
}
}
it知識庫:圖解 Android 廣播機制,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。