我有一个在启动时依赖 Internet 连接的应用程序,我可以使用下面的代码检测到它。
但是,当手机闲置一段时间并且我解锁它并启动我的应用程序时,它不会立即找到连接,我必须再次重新启动应用程序才能成功。
我曾尝试在一个线程中等待并再次重试下面的代码,但也没有成功。
任何想法将不胜感激,谢谢。
代码
// check Network/Internet connection
public boolean isOnline() {
try {
ConnectivityManager cm = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
cm = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI")) {
if (ni.isConnected()) {
haveConnectedWifi = true;
}
}
if (ni.getTypeName().equalsIgnoreCase("MOBILE")) {
if (ni.isConnected()) {
haveConnectedMobile = true;
}
}
}
return haveConnectedWifi || haveConnectedMobile;
} catch (Exception e) {
Log.e(TAG, e.toString());
}
return false;
}