首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带有进度对话框取消的Android AsynTask

带有进度对话框取消的Android AsynTask
EN

Stack Overflow用户
提问于 2011-04-01 21:12:07
回答 4查看 16K关注 0票数 17

在我的安卓应用程序中,我使用了带有进度对话框的AsynTask (请稍候登录...)用于使用我的网页登录用户(AsynTask中的web服务功能)

当用户单击设备上的后退按钮时,我想关闭进度对话框并取消AsynTask。

我找不到这样的例子,比如中断AsynTask。我读到了近似的cancel(布尔值),但我不知道如何从UI调用。

有没有人能告诉我。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-01 21:16:35

代码语言:javascript
复制
public MyActivity extends Activity {


  private MyAsyncTask task;

  public onCreate() {
     task = new MyAsyncTask(); // MyAsyncTask has a progress dialog and dismiss it
     // in an overrided cancel() method 
     task.execute();
  }

  private void handleOnBackButton() {
     task.cancel(true);
  }

然后,当用户按back或home时,您只需调用handleOnBackButton()。您可以使用onKeyDown()方法完成此操作。

票数 9
EN

Stack Overflow用户

发布于 2013-03-25 00:42:35

代码语言:javascript
复制
    ProgressDialog progressDialog = ProgressDialog.show(ActivityName.this,
            "Title",
            "Message");
    progressDialog.setCancelable(true);
    progressDialog.setOnCancelListener(new OnCancelListener() {

        @Override
        public void onCancel(DialogInterface dialog) {
            // TODO Auto-generated method stub
            // Do something...
        }
    });

setCancelable(true)方法设置是否可以使用BACK键取消对话框。您可以通过setOnCancelListener -> onCancel方法执行结束代码。

票数 20
EN

Stack Overflow用户

发布于 2011-04-01 21:15:37

您只需将ProgressDialog设置为可取消即可。当你点击“后退”按钮时,它就会消失。如下所示:

代码语言:javascript
复制
dialog.setCancelable(true);

您必须覆盖onBackPressed才能解除ProgressDialog并取消AsyncTask

代码语言:javascript
复制
@Override
public void onBackPressed() {
YourAsyncTaskObject.cancel(true);
YourProgressDialog.dismiss();
return;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5513855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档