Android學習——動態註冊監聽網路變化,android監聽

來源:互聯網
上載者:User

Android學習——動態註冊監聽網路變化,android監聽

建立一個BroadcastTest項目,然後修改MainActivity中的代碼,如下:

 1 public class MainActivity extends AppCompatActivity { 2     private IntentFilter intentFilter; 3     private NetworkChangeReceiver networkChangeReceiver; 4  5     @Override 6     protected void onCreate(Bundle savedInstanceState) { 7         super.onCreate(savedInstanceState); 8         setContentView(R.layout.activity_main); 9         intentFilter=new IntentFilter();10         intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");    //廣播接收器想要監聽什麼廣播,就在這裡添加相應的action11         networkChangeReceiver=new NetworkChangeReceiver();12         registerReceiver(networkChangeReceiver,intentFilter);              //調用resigerReceiver()方法進行註冊13     }14 15     @Override16     protected void onDestroy(){17         super.onDestroy();18         unregisterReceiver(networkChangeReceiver);19     }20 21     class NetworkChangeReceiver extends BroadcastReceiver{22         @Override23         public void onReceive(Context context, Intent intent){24 //          Toast.makeText(context,"network changes",Toast.LENGTH_SHORT).show();25             ConnectivityManager connectionManager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);    //得到系統服務類26             NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo();27             if(networkInfo!=null&&networkInfo.isAvailable()){28                 Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show();29             }else{30                 Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show();31             }32         }33     }34 }

動態註冊的廣播接收器一定要取消註冊才行,在onDestroy()方法中通過調用unregisterReceiver()方法來實現。

訪問系統的網路狀態需要聲明許可權,開啟AndroidManifest.xml檔案,在裡面加入許可權,如下:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3     package="com.example.administrator.broadcasttest"> 4  5     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 6     <application 7         android:allowBackup="true" 8         android:icon="@mipmap/ic_launcher" 9         android:label="@string/app_name"10         android:supportsRtl="true"11         android:theme="@style/AppTheme">12         <activity android:name=".MainActivity">13             <intent-filter>14                 <action android:name="android.intent.action.MAIN" />15 16                 <category android:name="android.intent.category.LAUNCHER" />17             </intent-filter>18         </activity>19     </application>20 21 </manifest>

運行程式,開啟資料連線、關閉資料連線,效果如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.