danilochagov
@danilochagov

Как продолжить выполнение остановленного AsycnTask в Android?

Я работаю с AsyncTask и появилась необходимость сделать паузу у загрузки(загрузка не реальная, обычная ради примера всё), есть кнопки start, stop, resume. При клике на start вызывается метод execute(); , а при клике на stop метод cancel(false); , который делает isCancelled() с false на true и этот код:
if (isCancelled()) {
                    Toast.makeText(MainActivity.this, "The load stopped!", Toast.LENGTH_SHORT).show();
                    return null;
                }

Останавливает работу таска, как мне потом продолжить его выполнение при клике на кнопку resume?
Пока стоит такой код на кнопку
case R.id.b_resume :
                if (myAsyncTaskDemo.isCancelled()) {
                    // resume
                }

Или, если уже остановил работу, то продолжить нельзя?
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Нельзя использовать асинктаски таким способом.
1) Отмененную таску нельзя возобновить
2) Они по-умолчанию выполняются последовательно, поэтому, даже если получится сделать подобный трюк, это застопорит остальные таски в приложении
3) У тебя утечка памяти.Утекает активити, просунутая в таску. Делать так не рекомендуется.

Возьми лучше реальный пример, и не майся дурью. Никто не использует асинктаски для заугрузок, которые можно поставить на паузу(т.е. достаточно долгих). Для этого существуют совсем другие апи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы