private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver; // 内部类
onCreate {
intentFilter = new IntentFilter();
// 添加 Action
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver(); // 内部类实例
registerReceiver(networkChangeReceiver, intentFilter);
}
// 内部类
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 获得系统服务类
ConnectivityManager connectivityManager = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
// 具体的使用场景
if (networkInfo != null && networkInfo.isAvailable()) {
Toast.makeText(context, "network is available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show();
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
unregisterReceiver(networkChangeReceiver);
}
}
添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />