NetWork获取连接状态/WebView的简单用法/当按返回键时返回堆栈内容

本文介绍了如何在Android中获取网络连接状态,并详细讲述了WebView的基本使用,包括加载页面、进度条显示、错误处理及返回键管理,确保用户在不同网络环境下有良好的浏览体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NetWork获取连接状态

1.首先通过连接管理器获取系统的连接服务

2.然后获取当前活动的网络连接信息

3.判断网络连接是否为空以及得到网络连接的类型

 private ConnectivityManager mConnectivityManager;
  mConnectivityManager= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo info=mConnectivityManager.getActiveNetworkInfo();                   //得到当前Activity的网络连接信息
                if (info!=null&&info.isConnected()){                                              //判断信息是否为空和网络是否连接
                    Toast.makeText(getApplication(), "有网络连接", Toast.LENGTH_SHORT).show();
                    String type=info.getTypeName();                                                //得到连接网络的类型
                    mTextViewConnect.setText(type);
                }else{
                    Toast.makeText(getApplication(), "无网络连接", Toast.LENGTH_SHORT).show();
                    mTextViewConnect.setText("无网络连接");
                }

WebView的简单用法

1.首先建立一个FramLayout,里面有3个View一个是ProgressBar用于显示加载页面时的进度,一个是WebView用于显示加载的网络页面,最后一个是TextView用于当网络连接失败时显示的界面,

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
       >
        <ProgressBar
            android:id="@+id/connect_progress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="invisible"/>
        <WebView
            android:id="@+id/connect_webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
           ></WebView>
        <TextView
            android:id="@+id/connect_textview_err"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="连接出错"
            android:layout_gravity="center"
            android:visibility="invisible"/>
    </FrameLayout>

2.找到这个webView然后调用setWebViewClient()方法,用于在页面开始时,页面结束时,以及返回错误时的控制和显示

 mWebViewConnect= (WebView) findViewById(R.id.connect_webview);
 mTextViewErr= (TextView) findViewById(R.id.connect_textview_err);
 mProgressBar= (ProgressBar) findViewById(R.id.connect_progress);
 //这个方法用于页面开始时、页面结束时、以及返回错误时的控制和显示,
        mWebViewConnect.setWebViewClient(new WebViewClient(){

            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                mProgressBar.setVisibility(View.VISIBLE);//显示进度
//                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                mProgressBar.setVisibility(View.INVISIBLE);//将progressbar隐藏
//                super.onPageFinished(view, url);
            }

            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                mWebViewConnect.setVisibility(View.GONE);//WebView设置为GONE
                mTextViewErr.setVisibility(View.VISIBLE);//显示文本信息,提示错误信息
                Toast.makeText(getApplicationContext(), "加载失败,请重新输入网址", Toast.LENGTH_SHORT).show();
                super.onReceivedError(view, errorCode, description, failingUrl);
            }
        });

3.然后设置进度条

//这个方法用于设置进程的更新和JavaScript( progress updates and JavaScript alerts are sent here)
        mWebViewConnect.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                mProgressBar.setProgress(newProgress);//设置进度,将进度显示在progressBar上
//                super.onProgressChanged(view, newProgress);
            }
        });

4.最后一定要loadUrl

   mWebViewConnect.loadUrl("http://www.baidu.com");  //添加网址,即在View中显示的网址

5.由于在WebView中存在View堆栈的情况要设置当按返回键时要返回上一个View

  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode==event.KEYCODE_BACK){                   //判断按键是不是返回键
            if (mWebViewConnect.canGoBack()){               //判断webView堆栈中是否有堆栈内容,即是否能返回
                mWebViewConnect.goBack();                   //返回上一个堆栈信息
                return true;                                //必须返回true否则执行失败
            }else{
                finish();                                   //当没有堆栈内容时,就关闭掉Activity
                return true;
            }
        }
        return super.onKeyDown(keyCode, event);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值