我正在尝试在启动画面上检查服务器连接。如果服务器在线,我想要make如果服务器没有ping我想要下载数据,我需要显示错误。我正在尝试用户服务器状态检查功能,如下所示
static public boolean isServerReachable(Context context) {
ConnectivityManager connMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = connMan.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL urlServer = new URL("your server url");
HttpURLConnection urlConn = (HttpURLConnection) urlServer.openConnection();
urlConn.setConnectTimeout(3000); //<- 3Seconds Timeout
urlConn.connect();
if (urlConn.getResponseCode() == 200) {
return true;
} else {
return false;
}
} catch (MalformedURLException e1) {
return false;
} catch (IOException e) {
return false;
}
}
return false;
}
但我不知道如何使用这种方法。我正在尝试下面的代码
boolean isServerReachable;
if (isServerReachable=true){
}
else
{
}
但这告诉我boolean isServerReachable;从未使用过。
如果我这样尝试
boolean isServerReachable;
if(isServerReachable(SplashsActivity.this)){
if (isServerReachable==true){
}
else {
}
}
&#13;
有人可以帮助我,我错过了什么?也许这是一个非常简单和愚蠢的问题,但我还在学习,所以请帮助我。感谢
答案 0 :(得分:0)
如果条件 -
,你可以在里面调用方法if(isServerReachable(context_value))
{
}
else
{
}
您当前使用的代码(如下所示)不会调用该方法。它实际上为变量赋值true - isServerReachable,它从未在'if'或'else'块中使用
boolean isServerReachable;
if (isServerReachable=true){
}
else
{
}
答案 1 :(得分:0)
如果 boolean isServerReachable 是局部变量,那么它不会获得默认值,它们必须被初始化。 ...在使用之前,应该使用值初始化局部变量。这样的事情:boolean isServerReachable = false
编译器会抱怨,因为默认情况下没有为局部变量赋值。
boolean isServerReachable = false;
if(isServerReachable(SplashsActivity.this)){
if (isServerReachable==true){
}
else {
}
}
它将修复其显示变量isServerReachable可能尚未初始化问题。