2017-01-15 7 views
-1

スプラッシュ画面でサーバーの接続を確認しようとしています。私はサーバーがpingをしない場合は、私はエラーを表示する必要がある場合は、他のダウンロードデータをしたい場合は、サーバーがオンラインであればしたい。私は以下のbooleanの状態を確認するのが難しい

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 
    { 

    } 

しかしこれは私にブーリアンisServerReachableを示しています。使用されることはありません。

私はこの

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

 
      } 
 
      else { 
 

 
      } 
 
     }
ようにしようとした場合、その示す変数isServerReachableが

を初期化されていない可能性があります誰かが私が行方不明です何私を助けてくださいことはできますか?たぶんこれは非常に単純で愚かな質問ですが、私はまだ学んでいますので、助けてください。おかげ

+1

(真isServerReachable ==)は '、おそらくの' IF(isServerReachable(コンテキストを使用して、あーシンボルisServerReachable –

+0

を作業している場合、 '(isServerReachable)場合、' '使用して、それを試しますか現在のクラス)) 'bool変数とメソッド名は同じです –

+1

を解決することはできませんρяσѕρєяKその私を示すエラー@ :) –

答えて

0

ブールisServerReachableは、ローカル変数は、それはデフォルト値を取得しない場合には、彼らが持っています初期化されます。 ...ローカル変数は、使用する前に値で初期化する必要があります。boolean isServerReachable = falseデフォルトでは、ローカル変数には値が割り当てられていないため、コンパイラは不平を言います。

boolean isServerReachable = false; 
    if(isServerReachable(SplashsActivity.this)){ 
     if (isServerReachable==true){ 

     } 
     else { 

     } 
    } 

それはその示す変数isServerReachableが問題が初期化されていない可能性がありますことを修正します。

0

あなたは条件ならば内部のメソッドを呼び出すことができます -

if(isServerReachable(context_value)) 
{ 

} 
else 
{ 

} 

メソッドを呼び出すことはありませんが、現在(下記の)を使用しているコードを。これは、実際に変数に真の値を割り当てる - 他の 『ブロック「if'or』で使用されることはありませんisServerReachableを、

boolean isServerReachable; 

    if (isServerReachable=true){ 

    } 
    else 
    { 

    } 
+0

私はあなたがその変数をisServerReachableが初期化されていない可能性があります私にエラーを与えたようにしてみてください。 –

+0

これは動作しません。なぜなら、ブール値がサーバをチェックできるかどうかは、ホストアドレスとポートアドレスがなくても –

関連する問題