检查布尔状态的困难

时间:2017-01-15 04:40:30

标签: java android

我正在尝试在启动画面上检查服务器连接。如果服务器在线,我想要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;从未使用过。

如果我这样尝试

&#13;
&#13;
 boolean isServerReachable;
        if(isServerReachable(SplashsActivity.this)){
            if (isServerReachable==true){

            }
            else {

            }
        }
&#13;
&#13;
&#13; 其显示变量isServerReachable可能尚未初始化

有人可以帮助我,我错过了什么?也许这是一个非常简单和愚蠢的问题,但我还在学习,所以请帮助我。感谢

2 个答案:

答案 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可能尚未初始化问题。