Да, я знаю. вот когда оказывается в коде ошибка, срабатывает catch блок и вызывается cancel(true). Почему оно во втором случае не заканчивает асинктаск — хз. В первом все работает
Насколько понял, листенер вызывает показ тоста. А работа с UI только с main потока
Да, только вся проблема в том, что при первом асинктаске оно покажет тост (покажет, что название потока main в этом месте https://t.me/android_ru/755569), а со второго уже не показывает тост, потому что название потока "AsyncTask #2"