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