Как исправить ошибку, при которой из двух идущих подряд AsyncTask, запускается только первый? Есть два Asynctask. Они вызываются подряд: new Update().execute();
new FindMusic().execute();
При этом из них запускается только первый, независимо от того, в какой последовательности они идут.
Подскажите в чем причина такого поведения и как от него можно избавиться?

21 Авг 2019 в 07:05
187 +1
0
Ответы
1

Проблема заключается в том, что AsyncTask является одноразовым классом и после выполнения задачи его необходимо создавать заново. Поэтому в вашем случае, после выполнения первого AsyncTask, необходимо создать новый экземпляр класса перед запуском второго AsyncTask.

Вот как можно исправить эту проблему:

new Update().execute();
new FindMusic().execute();

Превратите в:

new Update().execute();
newUpdate = new Update(); // Создаем новый экземпляр Update
newUpdate.execute();
new FindMusic().execute();
newFindMusic = new FindMusic(); // Создаем новый экземпляр FindMusic
newFindMusic.execute();

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

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир