Jov*_*van 17 android progressdialog android-asynctask
在我的Android应用程序中,我使用AsynTask with Progress Dialog(请等待登录...)用于使用我的网页登录用户(AsynTask内的Web服务功能)
我想在用户点击设备上的后退按钮时解除进度对话框并取消AsynTask.
我无法找到那种中断AsynTask的例子.我读了abouth cancel(boolean)但我不知道如何从UI调用.
任何人都可以给我一些想法
谢谢
sha*_*c19 20
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...
}
});
Run Code Online (Sandbox Code Playgroud)
setCancelable(true)方法设置是否可以使用BACK键取消对话框.您可以通过setOnCancelListener - > onCancel方法执行完成代码.
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);
}
Run Code Online (Sandbox Code Playgroud)
然后你需要的是handleOnBackButton()在用户按下或回家时打电话.你可以用onKeyDown()方法来做.
您只需将ProgressDialog设置为可取消.当您单击"返回"按钮时它将消失.像这样 :
dialog.setCancelable(true);
Run Code Online (Sandbox Code Playgroud)
您必须覆盖onBackPressed以关闭ProgressDialog以及取消AsyncTask
@Override
public void onBackPressed() {
YourAsyncTaskObject.cancel(true);
YourProgressDialog.dismiss();
return;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15845 次 |
| 最近记录: |