android - 没有可用的互联网连接时强制关闭应用程序

标签 android

我知道以前可能有人问过这个问题,但我不知道如何使用这些答案来使它们与我的应用一起工作。

当应用程序的用户打开应用程序时,我想检查是否有互联网连接。我已经找到了一些方法来检查它,但我对 android 开发完全陌生,我只是不知道该怎么做。这是我当前的申请文件:

package com.pocket.line;

import com.pocket.line.R;
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("http://www.google.com/");
}

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

如果没有连接,我想强制关闭应用程序,并显示警报。我发现可以检查这一点的代码 fragment :

    public boolean hasActiveInternetConnection()
     {
    try
    {
        HttpURLConnection urlc = (HttpURLConnection) 
        (new URL("http://www.google.com").openConnection());
        urlc.setRequestProperty("User-Agent", "Test");
        urlc.setRequestProperty("Connection", "close");
        urlc.setConnectTimeout(4000);
        urlc.setReadTimeout(4000);
        urlc.connect();
        networkcode2 = urlc.getResponseCode();
        return (urlc.getResponseCode() == 200);
    } catch (IOException e)
    {
        Log.i("warning", "Error checking internet connection", e);
        return false;
    }

    } 

我只是不知道我需要更改该代码的哪些部分才能使其与我的应用程序一起使用。任何帮助将不胜感激!

list 文件

 <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.pocket.line" android:versionCode="3"
  android:versionName="1.2">
 <uses-sdk android:minSdkVersion="11" />

 <uses-permission android:name="android.permission.INTERNET"/>

 <application android:icon="@drawable/ic_launcher" android:label="Pocket Line">
    <activity android:name="com.pocket.line.AndroidMobileAppSampleActivity"
              android:label="Pocket Line">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>
</manifest>

最佳答案

我认为你还没有在 AndroidManifest.xml 中声明 Activity

如果此 Activity 是应用程序的启动器,请这样做。

<activity
   android:name=".AndroidMobileAppSampleActivity"
   android:label="@string/title_activity" >
     <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

如果此 Activity 不是启动器。

<activity
   android:name=".AndroidMobileAppSampleActivity"
   android:label="@string/title_activity" >
</activity>

不要像这样检查互联网连接。

/**
 * This method check mobile is connected to network.
 * @param context
 * @return true if connected otherwise false.
 */
public static boolean isNetworkAvailable(Context context) {
    ConnectivityManager conMan = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if(conMan.getActiveNetworkInfo() != null && conMan.getActiveNetworkInfo().isConnected())
        return true;
    else
        return false;
}

并在AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

并使用以下代码进行检查:

if(!isNetworkAvailable(this)) {
   Toast.makeText(this,"No Internet connection",Toast.LENGTH_LONG).show();
   finish(); //Calling this method to close this activity when internet is not available.
}

关于android - 没有可用的互联网连接时强制关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728764/

相关文章:

java - 在 Textview 中包含 js 文件

android - 如何在 YouTube 播放器上获取正在播放的视频 URL (Android)

android - OSMDROID android 4.2 : Mapquest: As of july 11, 2016 direct tile access 已停产

android - 谷歌将焦点放在搜索栏上?

java - Android根据标签获取 View ID

java - 在类中打开文件

android - 如何在两个 Activity 之间传递对象?

android - 如何为所有android studio项目设置默认库

android - 原生 Android 开发还是 Adob​​e AIR?

java - 正确的字符集 |