Как получить цепочку запросов залпа с обновлениями индикатора выполнения - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть несколько запросов HTTP (объект JSON), для которых я использую залп.Первоначально у меня были все огонь сразу.Теперь я их связал, например, когда один запрос получает ответ, а другой - и так далее, и так далее.Список будет слишком длинным, чтобы показать его здесь, но вот упрощенный пример:

//first request
    JsonObjectRequest request = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>()
    {
        @Override
        public void onResponse(JSONObject response)
        {
//second request
            JsonObjectRequest request = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response)
                {
//another request here...
                }
            }, new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error)
                {
                    Log.e("Volley Error", error.toString());
                }
            })
//first request continues
        }
    }, new Response.ErrorListener()
    {
        @Override
        public void onErrorResponse(VolleyError error)
        {
            Log.e("Volley Error", error.toString());
        }
    })

Я хочу, чтобы индикатор выполнения отображал xx процентов после каждого ответа.Я попытался runOnUIThread и попытался обернуть весь блок кода в «AsyncTask» с помощью «onProgressUpdate».Но это не сработает.

Как правильно добавить обновление прогресса?

1 Ответ

0 голосов
/ 20 сентября 2018

Я пытался использовать математическое выражение, которое не работало - поэтому индикатор выполнения не двигался.

Когда я подставил простое уравнение (ниже) для числа, оно работало нормально.

Я установил переменную для общего количества запросов. Я хотел передать процент для каждого, поэтому я попытался (1 / num) * 100. Затем я понял, что это воспринимается как целое число, поэтому я добавил (float) вперед. При отладке я обнаружил, что часть в скобках выглядела нормально, как и ожидалось. Но * 100 не сработало.

...