Получение случайного идентификатора

У меня есть метод showTrajects, в котором я зацикливаю все id из trajects, которые у меня есть, пока все хорошо.

Редактировать: Я смотрю, и проблема всегда заключается в получении последнего идентификатора AllPendingTrajects, но почему он не попадает ни в первый, ни во второй? Проблема внутри AllPendingTrajects() :

public void showTrajects() {
        for (indexTrajecte = 0; indexTrajecte < contador; indexTrajecte++) {
            AllPendingTrajects();
        }
    }

 public void AllPendingTrajects(){

    AsyncHttpClient client = new AsyncHttpClient();
    String URL = "http://url.net/api/link1/"+IDTrajecte[indexTrajecte];
    client.get(URL,new AsyncHttpResponseHandler() {

        @Override
        public void onStart() {}

        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

            JSONObject trajectes = new JSONObject();

            String strResponseBody = new String(responseBody);

            try {
                trajectes = new JSONObject(strResponseBody);
            }catch (JSONException e){
                Toast.makeText(PendingTrajectRecyclerView.this, "Error", Toast.LENGTH_SHORT).show();
            }

            try {
                JSONArray realitzas = trajectes.getJSONArray("realitzas");

                dniTaxista = trajectes.getString("taxistes_dni");
                idTraject = Integer.parseInt(trajectes.getString("ID"));

                if(DadesTaxista.DNI.equals(dniTaxista)){
                    showPendingTraject();
                }
                else {
                    SeeAllTrajects();
                }
            }catch (JSONException e){
                e.printStackTrace();
            }

        }

        @Override
        public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, byte[] responseBody, Throwable error) {
            Log.d("ERROR",""+statusCode);
        }

    });
}

При вводе в методе SeeAllTrajects() в логе всегда получаю случайный ID и не знаю что может быть, толку вроде нет, пробовал создать глобальную переменную но безуспешно

  public void SeeAllTrajects(){
    AsyncHttpClient client = new AsyncHttpClient();
    String URL = "http://url.net/api/link2";
    client.get(URL,new AsyncHttpResponseHandler() {

        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

            JSONArray trajectesJSON = new JSONArray();

            String strResponseBody = new String(responseBody);

            try {
                trajectesJSON = new JSONArray(strResponseBody);
            }catch (JSONException e){
                Toast.makeText(PendingTrajectRecyclerView.this, "Error", Toast.LENGTH_SHORT).show();
            }
            try {
                Log.d("ID TRAJECT:","d"+idByTraject);

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

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
            Log.d("ERROR",""+statusCode);
        }
    });
}

person Luis    schedule 29.05.2018    source источник
comment
Вы отправляете запрос, как в порядке 1 - 2 - 3, но вы не получите ответ в том же порядке, поскольку запросы являются асинхронными.   -  person K Neeraj Lal    schedule 29.05.2018
comment
Так какое может быть решение?   -  person Luis    schedule 29.05.2018
comment
См. здесь и здесь.   -  person K Neeraj Lal    schedule 30.05.2018