首页 > 代码库 > 使用广播实时更新网络状态变化
使用广播实时更新网络状态变化
如果网络突然断开,我们要及时地提醒用户网络已断开,要实现此功能,我们可以接收网络状态改变这样一条广播,当由连接状态变为断开状态时,系统就会发送一条广播,我们接收到之后,再通过网络的状态做出相应的操作
public class NetworkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (!isNetworkAvailable(context)) {
//网络不可用操作
} else{
//网络可用操作
}
}
/**
* 网络是否可用
*
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] info = mgr.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}
}
再注册一下这个接收者的信息:
<receiver android:name=".NetworkStateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
还要添加网络限权:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
使用广播实时更新网络状态变化