如何在退出一个activity后,很好的取消AsyncTask继续运行?
2013-06-24 16:04
288 查看
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还在运行,则先取消它
}
}
}
@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还在运行,则先取消它
}
}
}
相关文章推荐
- 如何在退出一个activity后,很好的取消AsyncTask继续运行?
- Android之 如何在退出一个activity后,很好的取消AsyncTask继续运行
- Training--暂停和继续(运行)一个Activity
- SSH终端管理linux服务器如何退出后继续运行服务端
- 如何实现当一个应用调用另一个应用的某个activity的时候,让这个activity类似dialog的效果,但是这个应用单独运行的时候还是铺满屏幕的效果
- 如何取消一个AsyncTask?
- Android退出一个activity后取消掉其中的异步线程AsyncTask
- 2.2.1 传播行为 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。
- 如何避免Docker容器启动脚本运行后自动退出——一个cron定时任务docker镜像方案
- Socket在终端退出后,程序如何继续运行
- 如何通过AndroidJUnit4快速启动一个activity,并且不自动退出
- Linux 命令,如何让运行一个jar程序,当控制台退出后,仍然保持运行状态
- 如何取消一个正在运行的线程
- 如何取消一个正在运行的线程
- c#如何实现一个线程暂停,等待用户输入文本后继续运行?
- c#如何实现一个线程暂停,等待用户输入文本后继续运行?
- c#如何实现一个线程暂停,等待用户输入文本后继续运行?
- 如何在用户退出linux系统时使一个进程仍然继续执行
- 如何取消一个正在运行的线程
- android 取消AsyncTask继续运行的解决方案