判断是否有网,以及网络有无状态变化

来源:互联网 发布:windows磁盘碎片整理 编辑:程序博客网 时间:2024/04/30 08:52

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{                    //网络不可用                }            }        }    }
0 0
原创粉丝点击