如果了解網絡通信原理的,應該知道,在一個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: >