凌空第二请求返回空

问题描述:

的第一个请求成功完成,但设置断点并开始调试第二请求时在队列返回null,第二个请求得到它的价值成功凌空第二请求返回空

class ListLoader extends AsyncTask<Void,Void,MerchantCategories[]> 
{ 
    MerchantCategories[] data; 
    protected void onPreExecute() { 
     progressBar.setVisibility(View.VISIBLE); 
    } 
    @Override 
    protected MerchantCategories[] doInBackground(Void... params) { 
     Gson g = new Gson(); 
     gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); 
     try { 
      regid = gcm.register(PROJECT_NUMBER); 
      String msg=""; 
      msg = "Device registered, registration ID=" + regid; 
      Log.i("GCM", msg); 
      EgxServices.getJsonFrom("http://inareg.com/APIs/RegisterAndroidDevice?registrationID="+regid,(Activity) c); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     MerchantCategories[] categs=g.fromJson(EgxServices.getJsonFrom("http://inareg.com/APIs/ListMerchantCategories",(Activity) c),MerchantCategories[].class); 
     return categs; 

    } 

    protected void onPostExecute(MerchantCategories[] response) { 
     if(response == null) { 
      progressBar.setVisibility(View.GONE); 

     } 
     else{ 
     progressBar.setVisibility(View.GONE); 
     MerchantCategoriesAdp adp =new MerchantCategoriesAdp(c,R.layout.lst_merchant_categories,response); 
     drawerList.setAdapter(adp); 
     // Log.i("INFO", response); 
     // responseView.setText(response); 
      } 
    } 
} 

这种方法,我用来初始化一个新的请求,并返回JSON字符串

public static String getJsonFrom(final String urlStr, Activity context) { 
    final Context c = context; 
    final SharedValue value = new SharedValue(); 
    String result=""; 

    StringRequest request = new StringRequest(Request.Method.GET,urlStr,new Response.Listener<String>(){ 
     @Override 
     public void onResponse(String response) { 
      value.setResult(response); 
     } 

    },new Response.ErrorListener(){ 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(c, "No Internet Connection", 
        Toast.LENGTH_LONG).show(); 
     } 
    }); 
    Volley.newRequestQueue(c).add(request); 
    return value.getResult(); 
} 

,你可以看到,第一个请求 EgxServices.getJsonFrom(” http://inareg.com/APIs/RegisterAndroidDevice?registrationID="+regid,(Activity) c);

成功运行但第二个, EgxServices.getJsonFrom(“http://inareg.com/APIs/ListMerchantCategories",(Activity) c); 总是返回空值... 我需要知道为什么????? !!!

试试这个:

request.setShouldCache(false); 

Volley.newRequestQueue(c).add(request);

+0

我试过,但相同的结果:( –

+0

我也注意到,它仅在调试返回值,如果我通过响应结果到Log.v( “SD”, “排球响应+++” +响应);内onResponse –

+0

该问题可能是从方式传递导致 –