在我的活动中,我需要带有水平进度条的ProgressDialog
以可视化后台任务的进度。要使活动关注对话框,例如在屏幕旋转的情况下,我想使用在onCreateDialog
中创建的托管对话框。问题是,我需要在创建对话框后更新对话框的进度条,因此我需要对托管进度对话框的引用:有谁知道如何检索对由onCreateDialog
创建的对话框的引用吗?Gettring对托管ProgressDialog的引用
在我存储在onCreateDialog
创建对话框引用的那一刻,但我的失败,并在屏幕后onFinished()
方法InvalidArgumentException
已旋转(和活动已经重建):
public final class MyActivity extends Activity {
private static final int DIALOG_PROGRESS = 0;
private ProgressDialog progressDialog = null;
// [...]
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_PROGRESS:
progressDialog = createProgressDialog();
return progressDialog;
default:
return super.onCreateDialog(id);
}
}
// [...]
public void updateProgress(int progress) {
progressDialog.setProgress(0);
}
public void onFinished() {
progressDialog.dismiss();
}
// [...]
}
我会期待类似于Activity
类中的getDialog(int)
方法来获取托管对话框的引用,但似乎并不存在。有任何想法吗?