2013-12-10 3 views
-1

У меня есть фрагмент с AsyncTask, который работает практически все время. Когда я меняю фрагменты, открывая новый или нажимая назад, я хочу его убить.Android Kill AsyncTask

Какие методы мне нужно переопределить, чтобы заставить это работать. Я попробовал несколько, но он, похоже, не имел никакого эффекта.

+2

Есть примеры и много описаний [в официальной документации] (http://developer.android.com/reference/android/os/AsyncTask.html) – zapl

ответ

0

То, что я сделал, чтобы решить эту проблему, заключалось в том, чтобы установить отмену на true и выполнить ее снова (при необходимости).

yourAsyncTask.cancel(true); 
yourAsyncTask.execute(); 
+0

Это 'true' не устанавливает отменить к истине. Он контролирует, как он будет отменен: '.cancel (false)' установит отмененный флаг, который вы можете проверить внутри своей задачи с помощью '.isCancelled()'. '.cancel (true)' будет вызывать 'Thread # interrupt()' сверху. Многие операции блокировки (например, '.sleep()') могут быть остановлены, но некоторые не могут (например, при использовании 'Socket'). – zapl

Смежные вопросы