【发布时间】:2011-05-13 09:24:02
【问题描述】:
我正在使用 asynctask 和
我的异步任务代码如下
public class getSyncTaskInBackground extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
getSynchronizeTask();
return null;
}
@Override
protected void onPostExecute(Void result) {
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
displaySynchronizetask();
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(synchronize.this, "Tasks are synchroning...", "Please wait...");
super.onPreExecute();
}
@Override
protected void onCancelled() {
super.onCancelled();
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
}
这个线程需要更多时间来完成任务
所以如果我想在进程之间取消这个线程那么我写了这个按下后退按钮的代码
或者如果进度条已经关闭,那么我想通过调用 finish(); 来关闭活动
我的后退按钮代码如下
@Override
public void onBackPressed() {
syncThread.cancel(true); //syncThread is the object of getSyncTaskInBackground
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
} else {
finish();
}
}
现在,当我按下返回按钮时,progressdialog 不会关闭
我的代码有什么错误吗?有什么方法可以满足我的需要吗?
请帮帮我
【问题讨论】:
标签: android android-asynctask progressdialog