我在进度对话框中遇到了一些问题。我使用托管进度对话框向用户显示正在使用onCreateDialog(int id)函数中编写的以下代码执行操作:
case PROGRESS_DIALOG :
{
dialog = new ProgressDialog(this);
dialog.setMessage(getResources().getString(R.string.eStrUpdating));
dialog.setCancelable(true);
dialog.setOnCancelListener(new DialogInterface.OnCancelListener()
{
public void onCancel(DialogInterface dialogInterface)
{
Log.i(TAG,"progress dialog cancelled ");
}
});
return dialog;
}
当操作完成时,我调用dismissDialog(PROGRESS_DIALOG)。问题是如果我在显示进度对话框时旋转手机,那么当操作完成时,解除通话无效并且进度仍然显示。而我无法理解为什么。
答案 0 :(得分:6)
旋转手机时,“活动”将被销毁并重新创建。然后你应该在你的对话框中调用dismiss,在你的活动的onDestroy方法中重新创建它。
答案 1 :(得分:2)
我同意上述答案。当您的方向发生变化时,您的活动将被销毁并重新创建。
我改变方向的经验是:
HTH。