2014-01-21 129 views
2

我想在运行Android应用程序时连续检查互联网连接。我的意思是从应用程序开始到应用程序结束。我该怎么做?应该采取什么方法?如何在运行Android应用程序时连续检查互联网连接

+0

使用Android服务 –

+0

您可以使用'服务'从那里你可以检查网络是否可用。 – 2014-01-21 09:54:49

+0

http://stackoverflow.com/questions/10350449/how-to-check-the-internet-connection-periodically-in-whole-application/10350511#10350511请参阅这一个。 – 2014-01-21 09:55:59

回答

1

Android系统已经为你做了。而不是不断地轮询手机的网络状态,当WiFi或网络状态改变时,注册BroadcastReceiver以进行WiFi和网络状态更改并处理系统发送的请求。

查看this question了解更多信息。

注册BroadcastReceiver后,网络状态变化侦听将在后台(在操作系统中)发生,并且当网络状态发生变化时,将在UI线程(最有可能)发送一个Intent到您的接收器。如果您想在后台线程上收到Intent,请查看this question了解更多信息。

+0

感谢lucian回答...会让你知道什么对我有用... – Manish

4

创建扩展BroadcastReceiver的类,使用ConnectivityManager.EXTRA_NO_CONNECTIVITY获取连接信息。

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.widget.Toast; 

public class CheckConnectivity extends BroadcastReceiver{ 

@Override 
public void onReceive(Context context, Intent arg1) { 

    boolean isConnected = arg1.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 
    if(isConnected){ 
     Toast.makeText(context, "Internet Connection Lost", Toast.LENGTH_LONG).show(); 
    } 
    else{ 
     Toast.makeText(context, "Internet Connected", Toast.LENGTH_LONG).show(); 
    } 
    } 
} 

添加此权限在mainfest太

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

您也可以尝试这个服务类。只需设置以秒为单位的时间间隔和网址,以平:

Android Check Internet Connection

只要记住服务添加到清单文件,并添加权限