Android 如何按返回键暂停异步任务
2015-07-07 13:36
417 查看
使用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
此时按返回键,因为焦点在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
相关文章推荐
- Android ScrollView水平自动滚动
- android 编写content_provider对外共享数据
- android 使用BroadcastReceiver编写短信
- Android中弹出菜单PopupWindow的使用
- Android隐藏软件盘
- Android实现两次按下返回键退出
- Android通过图片名字获得ID
- android中的Handler
- Android Studio用法之---快捷键
- Android 用户界面编程技巧
- 【小超_Android】2015最流行的android组件、工具、框架大全(后续)
- android如何在代码中设置margin
- [Android5 系列—] 3. 支持不同的设备
- [Android5 系列—] 3. 支持不同的设备
- 【凯子哥带你做高仿】“煎蛋”Android版的高仿及优化(二)——大图显示模式、评论“盖楼”效果实现详解
- android应用未安装
- Android新版NDK环境配置(免Cygwin)
- 浅析,反编译 Android APK流程分享!
- Android 增强版百分比布局库 为了适配而扩展
- android 自动获取短信验证码