如果没有互联网,如何关闭Android应用程序

时间:2014-11-27 18:38:23

标签: android webview

我正在尝试创建一个基于谷歌表单的Android项目,我希望应用程序关闭或不显示链接,如果它无法连接到互联网,这里是代码,尝试使用退出,但它没有工作,任何帮助都会很棒。

package tscolari.mobile_sample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class AndroidMobileAppSampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    WebView mainWebView = (WebView) findViewById(R.id.mainWebView);

    WebSettings webSettings = mainWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    mainWebView.setWebViewClient(new MyCustomWebViewClient());
    mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    mainWebView.loadUrl("the url of form");
}

private class MyCustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}
}


i want something like this

if(mainwebview==null)//not able to load page
{
 //close the application
}

2 个答案:

答案 0 :(得分:2)

使用此功能检查互联网连接: [注意:这不是我原来的代码。我从教程中接过它,但我不知道哪一个]

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class CheckNetworkConnection {

    public static boolean isConnectionAvailable(Context context) {

        ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivityManager != null) {
            NetworkInfo netInfo = connectivityManager.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnected()
                    && netInfo.isConnectedOrConnecting()
                    && netInfo.isAvailable()) {
                return true;
            }
        }
        return false;
    }
}

基本上,只需做一个if(!CheckNetworkConnection.isConnectionAvailable(myContext)) {/* Close App*/ }。要关闭活动,请使用finish()。然而,要关闭整个应用程序read here,因为它在这里简单回答了我所能解决的所有问题。请注意,在没有用户输入的情况下突然关闭应用程序并不是一个好主意。

编辑:正如Xaver Kapeller在评论中澄清的那样,finish()是关闭活动的好方法 - 它也将关闭整个应用程序(除非活动以startActivityForResult()或类似的方式启动)

答案 1 :(得分:1)

我正在检查互联网连接

public static boolean isInternetAvailable(Context cxt) {
    final ConnectivityManager conMgr = (ConnectivityManager) cxt
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    final NetworkInfo i = conMgr.getActiveNetworkInfo();

    // if there is no active internet connection
    if (i == null || !i.isConnected() || !i.isAvailable()) {
        return false;
    }

    return true;
}

您可以使用finish()退出应用,但是您应该让用户知道为什么要关闭该应用。