亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android-強制取消AsyncTask

Android-強制取消AsyncTask

慕容708150 2019-08-03 03:03:11
Android-強制取消AsyncTask我在我的一項活動中實現了AsyncTask: performBackgroundTask asyncTask = new performBackgroundTask();  asyncTask.execute();現在,我需要實現“取消”按鈕功能,所以我必須停止執行正在運行的任務。我不知道如何停止正在運行的任務(后臺任務)。所以請建議我,我如何強制取消AsyncTask?最新情況:我發現Cancel()方法相同,但我發現調用cancel(boolean mayInterruptIfRunning)并不一定會停止后臺進程的執行。所有這些似乎都發生在AsyncTask將執行onCanced(),并且在它完成時不會運行onPostExecute()。
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

檢查一下isCancelled()偶爾:

 protected Object doInBackground(Object... x) {
    while (/* condition */) {
      // work...
      if (isCancelled()) break;
    }
    return null;
 }



查看完整回答
反對 回復 2019-08-05
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

這實際上取決于您在異步任務中所做的事情。

如果這是一個處理大量文件的循環,則只需在每個文件之后檢查isCanced()標志是否被提升,如果是,則從循環中斷開。

如果它是一個執行很長操作的一行命令,那么您就無能為力了。

最好的解決方法是不要使用異步任務的Cancel方法,而使用您自己的ancelFag布爾值。然后,您可以在postExecute中測試這個取消標志,以決定如何處理結果。



查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 427 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號