在我的安卓应用程序中,我使用了带有进度对话框的AsynTask (请稍候登录...)用于使用我的网页登录用户(AsynTask中的web服务功能)
当用户单击设备上的后退按钮时,我想关闭进度对话框并取消AsynTask。
我找不到这样的例子,比如中断AsynTask。我读到了近似的cancel(布尔值),但我不知道如何从UI调用。
有没有人能告诉我。
谢谢
发布于 2011-04-01 21:16:35
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()
方法完成此操作。
发布于 2013-03-25 00:42:35
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方法执行结束代码。
发布于 2011-04-01 21:15:37
您只需将ProgressDialog设置为可取消即可。当你点击“后退”按钮时,它就会消失。如下所示:
dialog.setCancelable(true);
您必须覆盖onBackPressed才能解除ProgressDialog并取消AsyncTask
@Override
public void onBackPressed() {
YourAsyncTaskObject.cancel(true);
YourProgressDialog.dismiss();
return;
}
https://stackoverflow.com/questions/5513855
复制相似问题