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);
}