1
我有一個AsyncTask運行一個循環,它只在退出應用程序時停止循環,全局「停止」布爾值被設置並停止循環並通過AsyncTask完成。Android退出AsyncTask
我有這樣的代碼:
@Override
public void onBackPressed()
{
KillAllThreads();
}
@Override
public void onUserLeaveHint()
{
KillAllThreads();
}
現在這裏是東西。如果我啓動AsyncTask,onUserLeaveHint()立即被調用,並且當home按鈕被按下時,它永遠不會觸發這個方法。如果我不啓動AsyncTask並讓該活動加載而不做任何事情,那麼當我按Home時,它會觸發onUserLeaveHint()方法。
我應該如何停止線程,如果用戶點擊了應用程序?
電話.cancel?我也嘗試在onStop()中調用myTask.cancel(true),它只是崩潰。 – Jesse
嘗試調用cancel(false)false表示正在進行的任務被允許完成,調用此操作可保證不會調用onPostExecute(...)。您應該定期從doInBackground(...)檢查由isCancelled()返回的值以完成任務。基本上當你調用cancel時,它意味着isCancelled()是真的,所以添加一行「if(isCancelled())break;」到你的doInBackground()方法中。 – Kenny
嘗試在onStop,myTask.cancel(false);崩潰馬上 – Jesse