网络判断

来源:互联网 发布:c语言do while 编辑:程序博客网 时间:2024/06/05 14:34

网络判断     创建工具类

public class NetWorkUtil {
    //判断网络状态是否可用
    public static boolean isConn(Context context){
        boolean flag=false;
        //获取网络连接的管理
        ConnectivityManager manager =(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        //拿到网络信息
        NetworkInfo info = manager.getActiveNetworkInfo();
        if (info!=null){
            flag=info.isAvailable();
        }
        return flag;
    }


    //如果没有网络,弹出对话框,选择是否设置网络
    public static void showNoNetWorkDlg(final Context context){

        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setIcon(R.mipmap.ic_launcher);         //
        builder.setTitle("警告");
        builder.setMessage("当前无网络,是否去设置");
        builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                // 跳转到系统的网络设置界面
                Intent intent = null;
                // 先判断当前系统版本
                if(android.os.Build.VERSION.SDK_INT > 10){  // 3.0以上
                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                }else{
                    intent = new Intent();
                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
                }
                context.startActivity(intent);
            }
        });
        builder.setNegativeButton("取消",null);
        builder.show();
    }

}

在MainActivity中写判断


        //2.进入页面之后判断网络状态是否可用
        boolean conn = NetWorkUtil.isConn(MainActivity.this);
        if (conn) {//有网络;页面可用时使用网络加载数据
            //加载数据
            // 实例化AsyncTask的对象并重写其中4个方法
            MyTask task = new MyTask();

            task.execute("https://www.toutiao.com/api/pc/focus/");
        } else {//当页面不可用时弹出吐司提示
            NetWorkUtil.showNoNetWorkDlg(MainActivity.this);
        }

       

原创粉丝点击