我知道这个问题可能之前已经被问过,但我不知道如何使用那些答案来使它们适用于我的应用程序。
我想要在用户打开应用程序时检查是否有互联网连接。我找到了一些检查的方法,但我对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;
}
}
}
如果没有连接,我希望强制关闭应用并显示警报。我找到了一些代码片段可以检查这个问题:
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;
}
}
我不知道需要更改代码的哪些部分才能使它与我的应用程序一起工作。如果有帮助,将不胜感激!
清单文件
<?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>
AsyncTask
。在doInBackground
方法中调用hasActiveInternetConnection
方法并在onPostExecute
中检查结果值,如果值为true
表示互联网可用,则启动下一个屏幕,如果为false
则关闭应用程序。您可以查看AsyncTask示例。 - ρяσѕρєя K