2015-12-30 61 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 
}