如何等待齐射响应完成然后执行下一个方法

时间:2016-03-11 12:29:22

标签: android android-volley

我正在onCreateView hitSearchApi()和getSwipeImage()中执行两个方法。

在从hitsearchApi方法获得响应之前,它会激活getSwipeImage方法。

我不知道如何等待凌空响应完成然后执行getSwipeImage()方法。

所以我无法得到预期的结果。任何人都可以帮助我。谢谢。

MainActivity.java:

  @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
      View rootView = inflater.inflate(R.layout.cards_fragment, container, false);

      hitSearchApi();

      getSwipeImage();

      Log.e("AUTH_ID",""+AUTH_ID);

      return rootView;

      }

 void hitSearchApi(){


      String getUserApi = Utils.BR_USERS;
      Log.e("GetUserSearchApi", getUserApi);

     StringRequest request = new StringRequest(Request.Method.GET, getUserApi, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                if(response != null && !response.startsWith("<HTML>")){
                    Log.e("onResponse", response);
                    dialog.dismiss();

                    try {
                        JSONArray jsonArr = new JSONArray(response);

                        for(int i = 0; i<jsonArr.length();i++){

                            JSONObject jsonObj = jsonArr.getJSONObject(i);

                            AUTH_ID = jsonObj.getString("_id");

                      }

                    } catch (JSONException e) {
                        e.printStackTrace();
                        dialog.dismiss();
                    }

                }else{
                    dialog.dismiss();
                    toastShort(getActivity() , "Check Internet");
                }
            }
        }

 RequestQueue queue = Volley.newRequestQueue(getActivity());
        queue.add(request);
        queue.getCache().remove(getUserApi);



    }

1 个答案:

答案 0 :(得分:2)

不要立即调用hitSearchApi()和getSwipeImage()。首先调用hitSearchApi()。在hitSearchApi()的onResponse()内,调用getSwipeImage()。这样,它们都将被串行执行而不是并行执行。