Android - Как сделать два асинхронных вызова в одном действии?

1

У меня есть активность, которая должна выполнять два вызова удаленного сервера. Первое простое и происходит, когда страница загружается, и я просто звоню, чтобы получить некоторые данные и показать их... нет проблем.

Проблема возникает во втором вызове, потому что, как только я вызываю sendFeedback, он пытается выполнить задачу, но метод doInBackground() был написан для исходного вызова, и, следовательно, параметры не будут работать, а также функция, вызываемая при данные возвращаются с удаленного вызова, не будут одинаковыми для обоих вызовов.

Что обычно делается в ситуации, с которой я столкнулся, когда мне нужно сделать два разных удаленных вызова из одной активности?

Благодарю!

  • 2
    Почему вы не можете просто создать совершенно новый класс задач Async?
  • 0
    Они оба бегут одновременно?
Теги:
android-activity
android-asynctask

3 ответа

3
Лучший ответ

Как предполагает dymmeh, просто используйте два разных подкласса AsyncTask.

  • 0
    @kabko спасибо, но как мне сделать два подкласса AsyncTask? Я имею в виду, как я могу назвать один класс, когда это необходимо, а не другой? :) Спасибо!
  • 0
    Я не уверен, где путаница. Как вы сделали один подкласс AsyncTask? Просто сделайте что-то подобное для второго. Возможно, для всех нас будет яснее, если вы разместите небольшой код или псевдокод того, что у вас есть, чтобы сделать вещи более конкретными.
Показать ещё 3 комментария
2

Я не мог полностью выполнить то, что вы хотите, но я думаю, вы говорите, что хотите сделать два асинхронных вызова последовательно со вторым в зависимости от первого.

Если мое понимание верное, запустите вторую AsyncTask из onPostExecute() первого.

2

Просто создайте 2 AsyncTask, где они вам нужны.

  new AsyncTask<String, Void, Object>() {
        @Override
        protected Object doInBackground(String... params) {
                    // put task here

        }

        @Override
        protected void onPostExecute(Object result) {
            super.onPostExecute(result);

        }
    };

Ещё вопросы

Сообщество Overcoder
Наверх
Меню