Android 如何按返回键暂停异步任务

转载 2015年07月07日 13:36:29

使用AsynTask异步任务处理耗时操作(work)时,通常会增加ProgressDialog进度条来显示等待操作(或加载进度)。
此时按返回键,因为焦点在ProgressDialog上,ProgressDialog捕获返回键操作,而Activity是不响应返回键操作的。
如果你想实现,当进行耗时操作时(ProgressDialog正在显示),按返回键,结束当前work操作。
你需要注意ProgressDialog的设置:
progress_dialog.setCancelable(true);//响应取消操作,这里如果设置false,按返回键ProgressDialog也不消失。
progress_dialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
AsynTask.this.cancle(true);//执行异步线程取消操作
}
});
同时注意,AsynTask执行cancele()操作后,相应的方法是如何执行。
You can stop a running task with cancel(true). A cancel will let the task finish its doInBackground but will never call onPostExecute. You could interrupt your background routine by checking isCanceled() and so return earlier since the task was killed.
参考:http://stackoverflow.com/questions/8209035/android-stop-asynctask-when-back-button-is-pressed-and-return-to-previous-acti

详解AsyncTask的cancel的有效用法,强制停止AsyncTask异步任务

AsyncTask是最常用的异步任务,随便一搜都知道如何使用。我在开发过程中也经常用到。很多刚入行的开发者,包括我自己都会遇到一个问题,AsyncTask异步任务,该如何停止,有个cancel,但ca...
  • qq_29623203
  • qq_29623203
  • 2016年04月13日 13:01
  • 910

Android性能优化之AsyncTask

AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合。其实AsyncTask并不是那么好,甚至有些糟糕。本文我会讲AsyncTask会引起哪些问题,如何修复这些问题,并...
  • u014651216
  • u014651216
  • 2016年03月03日 13:14
  • 681

android 取消AsyncTask继续运行的解决方案

问题 当进入一个详细页面,这时程序会弹出一个对话框加载网络数据,可是发现用户经常因为数据加载慢,就快速的退出这个页面,这样反复来回几次后,发现AsyncTask不再继续加载,而是慢慢的等待,查了下个...
  • u011467537
  • u011467537
  • 2015年12月08日 10:25
  • 1762

译文:Android中糟糕的AsyncTask之停止AsyncTask操作

译文:Android中糟糕的AsyncTask NOV 8TH, 2014 AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合。其实AsyncTask...
  • u011484134
  • u011484134
  • 2015年10月30日 18:44
  • 1721

android返回键关闭AsyncTask

以《MyT》项目为例,把AsyncTaskDemo放出来。 private ProgressDialog pDialog; private CheckedIn task;...
  • Spartacus0830
  • Spartacus0830
  • 2014年08月09日 18:36
  • 692

Android 如何按返回键暂停异步任务

使用AsynTask异步任务处理耗时操作(work)时,通常会增加ProgressDialog进度条来显示等待操作(或加载进度)。 此时按返回键,因为焦点在ProgressDialog上,Progr...
  • tianyitianyi1
  • tianyitianyi1
  • 2015年07月07日 13:36
  • 1013

Android 如何按返回键暂停异步任务

使用AsynTask异步任务处理耗时操作(work)时,通常会增加ProgressDialog进度条来显示等待操作(或加载进度)。 此时按返回键,因为焦点在ProgressDialog上,Pro...
  • hongkonglife
  • hongkonglife
  • 2015年03月20日 10:05
  • 632

Android按返回键退出程序

1. 按返回键后,弹出对话框,让用户选择 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { ...
  • crazy_yyyyy
  • crazy_yyyyy
  • 2016年05月24日 23:36
  • 2707

安卓中返回键的使用

对返回键的获取 在android应用中,通常会有按返回键(即keyCode == KeyEvent.KEYCODE_BACK)的情况,但大多情况下该应用还在任务里运行着,并不是我们想...
  • CsdnXiaoCaiJi
  • CsdnXiaoCaiJi
  • 2016年10月12日 13:40
  • 985

Weex控制Android返回键解决方案

正在深入倒腾weex,希望可以将weex用在项目中。这里找出了weex控制Android返回键的方法。 需求项目使用的是Vue+VueRouter的单页应用来写Weex的,现有以下需求。 当页面不在首...
  • violetjack0808
  • violetjack0808
  • 2017年06月30日 15:58
  • 1649
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 如何按返回键暂停异步任务
举报原因:
原因补充:

(最多只允许输入30个字)