Android廣播之靜態註冊

山有木xi發表於2020-03-10

如果瞭解網路通訊原理的,應該知道,在一個IP網路範圍中,最大的IP地址是被保留作為廣播的地址使用的,比如某個網路的IP範圍是192.168.0.XXX,子網掩碼是245.245.245.0,那麼這個網路的廣播地址是192.168.0.245.廣播的資料會發給同一網路上的所有埠,這樣該網路中的每臺主機都將會受到這條廣播。

而Android中的廣播機制則更為靈活,因為每個應用程式可以對自己感興趣的廣播進行註冊,這樣程式只需要接受到自己關心的廣播內容,例如關閉啟動WiFi。

而Android中的廣播主要分為兩種型別:

  • 標準廣播,是一種完全非同步執行的廣播,在廣播發出後,所有的接收器都會接收到該廣播,而且幾乎是同一時間,因此沒有前後順序之分,效率非常高。但是同時也意味著,它無法被攔截

  • 有序廣播,是一個同步執行的廣播,在廣播發出後,同一時間只會有一個接收器收到該廣播資訊,當這個接收器的所有邏輯執行完畢之後廣播才會繼續向下個接收器傳遞,這個時候優先順序高的接收器就會先接收到廣播,並且可以攔截廣播

那麼在廣播中,最基礎的就是靜態註冊廣播接收器

首先新建一個Java類,透過"New/Other/Broadcast Receiver",命名為MyReceiver,新增以下內容

public MyReceive{
public void OnReceive(Context context,Intent intent){
Toast.maetText(context,"收到一條廣播",toast.LENGTH_LONG).show();
}
}

然後在MainAcitivity中新增一個類

public void sendBc(View view){
sendBroadcast(new Intent(this.MyReceive.class));
}

然後在AndroidManifest.xml註冊

最後在XML中新建一個Button,新增一個onclick

android: >


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2679332/,如需轉載,請註明出處,否則將追究法律責任。

相關文章