Java文件,这将在应用程序启动时检查互联网连接
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
public class isNetworkAvailable extends Activity {
private ImageButton btn;
private Handler h = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_is_network);
btn = (ImageButton) findViewById(R.id.bu);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
restar();
}
});
if (!isNetworkAvailable()) {
AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(isNetworkAvailable.this);
Checkbuilder.setIcon(R.drawable.error);
Checkbuilder.setTitle("Error!");
Checkbuilder.setMessage("Check Your Internet Connection.");
Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Intent intent = getIntent();
finish();
startActivity(intent);
}
});
Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
AlertDialog alert = Checkbuilder.create();
alert.show();
} else {
if (isNetworkAvailable()) {
Thread tr = new Thread() {
public void run() {
try {
sleep(4);
} catch (Exception e) {
e.printStackTrace();
} finally {
Intent i = new Intent(isNetworkAvailable.this, MainActivity.class);
startActivity(i);
finish();
}
}
};
tr.start();
}
}
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
public void restar(){
Intent intenet =new Intent(this,isNetworkAvailable.class);
startActivity(intenet);
finish();
}
}
上述Java代码的布局文件。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
tools:context=".isNetworkAvailable">
<ImageView
android:id="@+id/imageView2"
android:layout_width="389dp"
android:layout_height="439dp"
android:contentDescription="no internet check your connection"
android:src="@raw/no"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/bu"
android:layout_width="335dp"
android:layout_height="80dp"
android:layout_below="@id/imageView2"
android:layout_marginTop="32dp"
android:contentDescription="Tap to retry"
android:src="@raw/r"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView2" />
</android.support.constraint.ConstraintLayout>
只需添加这行代码,就可以持续检查网络连接
mWebView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
mWebView.loadUrl("file:///android_asset/error.html");
and your android mainfest should be like this
<application
android:icon="@mipmap/ic_app"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_app_round"
android:supportsRtl="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity
android:name=".isNetworkAvailable"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
将此文件放置在名为“error.html”的资产下。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<title>No Connection</title>
<!-- Stylesheets-->
<style type="text/css">
body{
background: #E1e1e1;
}
#cloud{
width: 300px;
height: 120px;
background: #676767;
background: -webkit-linear-gradient(-90deg,#676767 5%, #676767 100%);
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
position: relative;
margin: 150px auto 0;
opacity: .5;
}
#cloud:before, #cloud:after{
content: '';
position:absolute;
background: #676767;
z-index: -1;
}
#cloud:after{
width: 100px;
height: 100px;
top: -50px;
left:50px;
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
}
#cloud:before{
width: 120px;
height: 120px;
top: -70px;
right: 50px;
-webkit-border-radius: 200px;
-moz-border-radius: 200px;
border-radius: 200px;
}
.shadow {
width: 300px;
position: absolute;
bottom: -10px;
background: black;
z-index: -1;
-webkit-box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);
-moz-box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);
box-shadow: 0 0 25px 8px rgba(0,0,0,0.4);
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
h1{
color: #fff;
font-size: 25px;
padding-top: 1px;
text-align: center ;
margin: 2px auto;
}
h2 {
color: #fff;
font-size: 17px;
padding-top: 15px;
text-align: center;
margin: 5px auto;
}
h4 {
color: #fff;
font-size: 14px;
margin: 0 auto;
padding: 0;
text-align: center;
}
</style>
<body>
<div id="cloud"><h1>Whoops!</h1>
<h2>Slow or No internet Connection :(</h2>
<h4>Please Check your WiFi or Mobile Internet!</h4>
<span class="shadow"></span></div>
</body>
</html>
你需要输入以上所有代码才能使其正常工作。希望这能帮到你。