手機的網絡狀態監聽:
android系統已經有這樣一個動作,當手機的網絡狀態發生改變時,發送一個廣播;
所以我只需要做的步驟是:
1、添加允許獲取網絡切換的狀態權限:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
添加網絡連接的權限:<uses-permission android:name="android.permission.INTERNET" />
2、在AndroidMainifest.xml中注冊該廣播接收者:
<receiver android:name="com.example.newwork.NetworkReceiver" >
<intent-filter>
<!-- 監聽的動作類型,這里是監聽網絡連接的狀態 -->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
3.自己的BrodCaseReceiver:
public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeInfo = manager.getActiveNetworkInfo();
//如果無網絡連接activeInfo為null
//也可獲取網絡的類型
if(activeInfo != null){ //網絡連接
Toast.makeText(context, "測試:網絡連接成功",0).show();
}else { //網絡斷開
Toast.makeText(context, "測試:網絡斷開",0).show();
}
}
}
應用場景:
qq在斷網的時候無論你的在哪個頁面 當前刷新都會出現網絡斷開的提示,可以通過 模板模式 + 觀察者模式的設計實現;