Android检查互联网连接,如果离线则重试或退出

阿德里安·M。

我正在尝试使该应用程序检查互联网连接,如果它处于脱机状态,请重定向到webview中的脱机html文件。然后我不知道如何使用户重试或取消并退出该应用程序。

这是我的代码:

import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.app.Activity;
import android.os.Bundle;
//import android.view.Menu;
//import android.view.MenuItem;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.widget.Toast;
import android.view.KeyEvent;

public class MainActivity extends Activity {
WebView browser;

@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // find the WebView by name
    browser=(WebView)findViewById(R.id.wvwMain);

    // Enable javascript
    browser.getSettings().setJavaScriptEnabled(true);  

    // Set WebView client
    browser.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
                }
        });

     // Load the webpage 
        ConnectivityManager cn=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo nf=cn.getActiveNetworkInfo();

        if(nf != null && nf.isConnected()==true )
        {
            browser.loadUrl("http://website.com/");
            }
        else
        {
            Toast.makeText(this, "Network Not Available", Toast.LENGTH_LONG).show();
            browser.loadUrl("file:///android_asset/noconnection.html");
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && browser.canGoBack()) {
            browser.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}
杜马奇

您必须实现类似按钮的操作,以使用户重试。然后,当您发现没有连接时,请显示该按钮并在单击时重试。

一般而言,有些有用的做法是,创建一个utils类来检查是否已连接。

public class ConnectionUtils {

public static boolean isConnected(Context context){
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
    NetworkInfo mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if ((wifiInfo != null && wifiInfo.isConnected()) || (mobileInfo != null && mobileInfo.isConnected())) {
            return true;
    }else{
            return false;
    }
}

}

然后您可以随时致电ConnectionUtils.isConnected(this)ConnectionUtils.isConnected(getActivity)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:检查互联网连接

来自分类Dev

Android:检查互联网连接

来自分类Dev

检查互联网连接Android的超时

来自分类Dev

检查互联网是否离线

来自分类Dev

Android-以编程方式检查互联网连接并显示对话框(如果未连接)

来自分类Dev

无法连接到Heroku API,请检查互联网连接,然后重试

来自分类Dev

在Android WebView(Cordova)中检查互联网连接

来自分类Dev

Android:检查网络和真实的互联网连接

来自分类Dev

Android-在开始意图之前检查互联网连接

来自分类Dev

Android MVP,可检查互联网连接

来自分类Dev

在Android应用中检查互联网连接

来自分类Dev

按下按钮时android检查互联网连接

来自分类Dev

在android编程上检查互联网连接

来自分类Dev

用phonegap检查互联网连接

来自分类Dev

检查实际的互联网连接

来自分类Dev

使用Python检查互联网连接

来自分类Dev

使用任务检查互联网连接

来自分类Dev

从Excel VBA检查互联网连接

来自分类Dev

检查互联网连接问题

来自分类Dev

检查实际的互联网连接

来自分类Dev

使用任务检查互联网连接

来自分类Dev

在Ubuntu中检查互联网连接

来自分类Dev

批量检查互联网连接

来自分类Dev

Xamarin 检查互联网连接

来自分类Dev

单击按钮检查互联网连接

来自分类Dev

检查互联网连接问题

来自分类Dev

如何设置Android Studio,以便离线时可以进行编译(与互联网断开连接)

来自分类Dev

互联网连接恢复时重试请求-iOS

来自分类Dev

未连接互联网时,翻新会不断重试