我在互联网上找不到任何有用的教程,也没有找到开发者网站上的文档。
在我的应用程序中,我使用HttpPost连接到Web服务器,当没有互联网连接,但 wifi 打开时显示白屏并且在10点之后-15秒“UnknownHostException”。
我抓住了这个例外并像烤面包一样
Unable to connect, check your internet connection.
并关闭Activity(或者应用程序,因为我在第一个Activity上使用了finish())。
当 wifi 本身关闭时,我会像“
一样立即吐司You need internet connection to use this Application
但第一种情况令人恼火。花10到15秒的时间然后展示吐司。
所以我使用 HttpParameters 并添加了 5秒ConnectionTimeout 参数。
但该应用程序的工作方式与以前相同(不影响此参数)。
如果我点击ConnectionTime(5秒结束),我如何跟踪。所以我可以展示像Toast一样的Toast
Slow internet connection
此外,为什么当 wifi开启但没有互联网时,互联网连接检查不起作用
这是我在推出申请时检查的内容:
cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (isOnline(cm, this, SignUpActivity.this)){
//continue
}
public static boolean isOnline(ConnectivityManager cm, Context c, Activity a) {
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
Toast.makeText(c, "You need internet access to run this application",
Toast.LENGTH_SHORT).show();
a.finish();
return false;
}
我只检查设备的wifi是否打开。如果是这样,我怎么能检查我是否有互联网连接,而不仅仅是wifi
谢谢
答案 0 :(得分:1)
关于第一个问题,请尝试使用SocketTimeout。
关于第二个问题,行
NetworkInfo netInfo = cm.getActiveNetworkInfo();
仅获得Wi-Fi状态(即手机wifi天线开启)但不实际连接。该函数立即返回,因此如果关闭wifi,您可以在不进一步检查连接的情况下进行烘烤。但是当打开wi-fi时,你应该继续检查服务器的实际可达性,例如
InetAddress.getByName(host).isReachable(timeOut)