1、判断是否有网
// 是否有网络,包括2g,3g.wifi
public static boolean isNetActive() {
boolean flag = false;
ConnectivityManager manager = (ConnectivityManager) UIUtils.getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
if (manager.getActiveNetworkInfo() != null) {
flag = manager.getActiveNetworkInfo().isAvailable();
}
return flag;
}
其中:UIUtils.getContext()
public class UIUtils {
/**
* 获取上下文Context
*
* @return
*/
public static Context getContext() {
return BaseApplication.getApplication();
}
}
2、判断网络状态变化
/**
* 网络广播,网络有无的状态发生变化时使用
*/
public static final String CONNECTIVITY_CHANGE_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
然后,在目标文件中,写广播监听
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(CONNECTIVITY_CHANGE_ACTION);
getActivity().registerReceiver(myBroadcastReceiver, filter);
/**
* 广播接收
*/
class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(PARAM.CONNECTIVITY_CHANGE_ACTION.equals(intent.getAction())){
//网络状态发生变化了
if (NetWorkHelper.isNetActive()) {
//网络可用
}else{
//网络不可用
}
}
}
}