2013-08-08 2 views
0

Я проверяю код другого пользователя. И то, что я там видел.Отменить AsyncTask класс in onPostExecute

@Override 
    protected void onPostExecute(AutoBookmarkInfo result) { 
     super.onPostExecute(result); 

     // some computation... 

     if (setAutoBookmarkTask != null) { 
      setAutoBookmarkTask.cancel(false); 
      setAutoBookmarkTask = null; 
     } 

    } 

setAutoBookmarkTask - это экземпляр класса AsyncTask. Пожалуйста, может кто-нибудь объяснить, почему этот парень пытается отменить рабочую нить, когда все работы уже выполнены?

+1

'setAutoBookmarkTask' не может быть связан с этим конкретным' onPostExecute() ', это может быть и другая' AsyncTask'. – g00dy

+0

И я не запускаю один 'AsyncTask' при onPostExecute другого' AsyncTask' - хорошая идея. –

+1

Я думаю, вы знаете о рабочем потоке класса AsynchTask. Поскольку @ g00dy сказал, что код отмены не нужен, чтобы добавить метод onPostExecute(). Если вы хотите отменить запущенную задачу, которую вы можете добавить туда, где бы вы ни находились в своей деятельности. – Srinivasan

ответ

0

setAutoBookmarkTask.cancel(false) ничего не значит. Если вам нужно прервать или отменить задачу async, вы должны передать true в аргументе.

+0

вы можете использовать как это также http://www.quicktips.in/correct-way-to-cancel-an-asynctask-in-android/ –

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