一、網路通信原理基礎知識 1.在一個IP網路範圍內最大的IP地址是被保留作為廣播地址來使用的。 比如:某個網路的IP範圍為192.168.0.XXX,子網掩碼為255.255.255.0,那麼這個網路的廣播地址為192.168.0.255。廣播數據包會發送到同一網路上的所有埠,這樣在網路中的 ...
一、網路通信原理基礎知識
1.在一個IP網路範圍內最大的IP地址是被保留作為廣播地址來使用的。
比如:某個網路的IP範圍為192.168.0.XXX,子網掩碼為255.255.255.0,那麼這個網路的廣播地址為192.168.0.255。廣播數據包會發送到同一網路上的所有埠,這樣在網路中的每台主機都會收到這條廣播。
2.andorid中的廣播機制更加靈活,因為每一個應用程式都可以自己定製自己關心的廣播內容。
3.andorid中的廣播機制分為兩種:標準廣播和有序廣播
(1)標準廣播:是一種完全非同步執行的廣播,在廣播發出之後,所有的廣播接收器幾乎都會在同一時刻接收到這條廣播內容,因此他們之間沒有先後舒徐之分。這種廣播的效率會比較高,但是同時也意味著他是無法被截斷的。
(2)有序廣播:是一種同步執行的該廣播,在廣播發出之後,同一時刻只會有一個廣播接收器能夠接收到這條廣播,當這個廣播接收器中的邏輯執行完畢後,該廣播才會繼續傳播,並且此時的廣播接收器是有先後執行順序的,優先順序高的廣播接收器就可以先收到廣播消息,並且前面的廣播接收器還可以截斷正在傳遞的廣播,這樣後面的廣播接收器就無法收到廣播消息了。
二、接收系統廣播
package com.example.broadcasttest; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver,intentFilter); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkChangeReceiver); } class NetworkChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context,Intent intent) { Toast.makeText(context, "network changes", Toast.LENGTH_SHORT).show(); } } }
三、源碼:
Broadcast
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料