我正在使用异步任务将图片上传到远程服务器。为了向用户显示进度,我正在使用进度对话框。此进度对话框是在异步任务类的 preExecute 方法中创建的。
当用户旋转屏幕时,进度对话框消失,但异步任务仍在运行。该活动持有对异步任务的静态引用,因此我知道该任务仍在运行。我现在如何再次显示进度对话框?我尝试了以下方法:
活动的创建方法:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
if(task != null) {
Status status = task.getStatus();
if(status == Status.RUNNING) {
task.updateViewContext(this);
}
}
我的异步任务类的构造函数:
public UploadTask(UploadPicturesActivity activity) {
this.context = activity;
dialog = new ProgressDialog(activity);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
}
我的 asnyc 任务类的 preexcetue 方法:
protected void onPreExecute() {
this.dialog.show();
}
并尝试再次显示对话框(不起作用):
public void updateViewContext(UploadPicturesActivity activity) {
this.context = activity;
dialog.show();
}
问候
迈克尔