2017-02-13 6 views
0

Я хочу закрыть или убить asynctask, которая работает в фоновом режиме. Я использую панель навигации. Использование asynctask.cancel не работает. Я передаю объект asynctask через основную активность адаптера навигационного ящика. но он не работает. Мой вопрос заключается в том, как остановить asynctask от другого действия? или как убить асинтез?Можно ли остановить асинтаску от другой активности или фрагмента?

ответ

0

Попробуйте использовать task.cancel (true);

Документация AsyncTask предоставляет некоторые дополнительные подробности в «Отмена задания» раздела:

Задача может быть отменена в любой момент, вызвав отмены (булево). Вызов этого метода приведет к последующим вызовам isCancelled(), чтобы вернуть true. После вызова этого метода onCancelled (Object) вместо onPostExecute (Object) будет вызываться после того, как doInBackground (Object []) вернется. Чтобы гарантировать, что задача будет отменена как можно быстрее, вы всегда должны проверять возвращаемое значение isCancelled() периодически из doInBackground (Object []), если это возможно (например, внутри цикла).

В вашем определении First_Activity задача as: static AsyncTask loadt;

и при необходимости называть его loadt = new LoadViewTask(). Execute();

В вашей Second_Activity вы можете позвонить First_Activity.loadt.cancel (true);

Вы получите контроль @onCancelled() функции LoadViewTask

+0

Того но мой вопрос я могу остановить от другой деятельности –

+0

да. используйте ту же функцию выше (task.cancel (true)). – Nabil

+0

, но как получить ссылку на объект i m, проходящий через переходник навигатора, но не работающий –

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

  • Нет связанных вопросов^_^