Rupert

::Me(C#,VC,MonoTouch,MonoforAndroid);

导航

关于AsyncTask 的退出

Posted on 2014-04-02 10:46  ArRan  阅读(422)  评论(0编辑  收藏  举报

public class Task extends AsyncTask<Void, Void, Void>{

@Override
protected Void doInBackground(Void... path) {
// Task被取消了,马上退出循环
if(isCancelled()) return null;
}

@Override
public void onProgressUpdate(File... files) {
// Task被取消了,不再继续执行后面的代码

if(isCancelled()) return;
.........
}
}

UI线程:

// 保持对Task的引用

private PhotoTask task;

// 1,启动新的任务
task = new PhotoTask();
task.execute(path);

// 2, 取消任务

if (task != null && task.getStatus() == AsyncTask.Status.RUNNING) {
task.cancel(true); // 如果Task还在运行,则先取消它
}


}
}