2015-12-30 60 views
0

我有一個靜態方法,如果互聯網可用或不可用,則通過cheking修改布爾值。我能夠捕獲「NoerrorConnection」,但不能返回布爾值false到調用函數。如何從ErrorListener發送布爾值?互聯網抽查

public static boolean isConnectingToInternet() 
     { 
      JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, "www.google.co.in", new Response.Listener<JSONObject>() { 
       @Override 
       public void onResponse(JSONObject response) { 


       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        if (error instanceof NoConnectionError) { 


        } 
       } 
      }); 
      AppController.getInstance().addToRequestQueue(req); 
      return false; 
     } 

回答

0

嘗試此,

public static boolean isConnectingToInternet() 
      { 
       Boolean flag=false; 
       JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, "www.google.co.in", new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 
        flag=true; 

        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         if (error instanceof NoConnectionError) { 

         flag=false; 
         } 
        } 
       }); 
       AppController.getInstance().addToRequestQueue(req); 
       return flag; 
      } 
+0

這是錯誤的,我如何從void類型 –

+0

檢查返回布爾現在的答案 – Madhur

+0

Volley在單獨的線程上運行,它總是通過上面的代碼返回false。 –

1

創建與具有布爾參數的方法的接口。在你的活動和方法中實現這個接口。每當你想發送任何東西到活動時,只需調用該接口方法將volley onErrorResponse()方法中的布爾值作爲參數傳遞。

+0

你可以關注http://developer.android.com/training/basics/fragments/communicating.html –

0

我不知道我是否正確,但試試這個。

public static boolean isNetworkAvailable(Context context) { 
    ConnectivityManager connectivityManager = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo activeNetworkInfo = connectivityManager 
      .getActiveNetworkInfo(); 
    return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
} 
1

這是我的方法,它返回布爾

public static boolean isConnectedToInternet(Context context) 
{ 
    // Check intenet connectivity 
    boolean connected = false; 
    try 
    { 
     ConnectivityManager conMgr = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

     connected = ( conMgr.getActiveNetworkInfo() != null && 
       conMgr.getActiveNetworkInfo().isAvailable() && 
       conMgr.getActiveNetworkInfo().isConnected() ); 
    }catch (Exception e) 
    { 
     return false; 
    } 

    return connected; 

} 

,你可以調用此方法像這樣

if(isConnectedToInternet(YourActivity.this)) { 
// that means connected 
}else{ 
//that means not connected 
}