我开发这个应用程序,在主要活动中我检查互联网连接如下:
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
LoaderManager loaderManager = getSupportLoaderManager();
loaderManager.initLoader(1, null, this);
}
当我转到HOURLY
活动时,我会按照与onCreate()
方法相同的方式检查互联网。
我的问题,当我打开主要活动时,我断开互联网并转到HOURLY
活动处理"没有互联网例外"但HOURLY
活动中的networkInfo.isConnected()返回true
为什么互联网仍然连接???
答案 0 :(得分:0)
我不知道您打算如何使用上述代码,但我相信这会有效。
getActiveNetworkInfo()
ConnectivityManager
方法返回表示它可以找到的第一个连接网络接口的NetworkInfo
实例,如果没有连接任何接口,则返回null。检查此方法是否返回null应足以判断是否有可用的Internet连接。
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
您还需要:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
在您的Android清单中。
请注意,拥有有效的网络接口并不能保证特定的网络服务可用。网络问题,服务器停机,低信号,强制网络门户,内容过滤器等都可能阻止您的应用访问服务器。例如,在您收到Twitter服务的有效回复之前,您无法确定您的应用是否可以访问Twitter。