監聽網絡狀態變化——廣播接收者


手機的網絡狀態監聽:

  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在斷網的時候無論你的在哪個頁面 當前刷新都會出現網絡斷開的提示,可以通過 模板模式 + 觀察者模式的設計實現;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM