我一直在寻找相同的答案,但是这里没有一个答案对我有用,因为我想使用 Activity 的对话框方法,Activity.showDialog()
所以我不必自己管理它们,而且它们会在轮换时自动重新创建。
就像其他一些答案所说的那样,如果在 a 上调用 dismiss() ProgressDialog
,它将停止旋转。Activity.onCreateDialog()
保存对对话框的引用,因此一旦创建它就不会在下次Activity.showDialog()
调用时重新创建。它只会调用Activity.onPrepareDialog()
并使用它已经拥有的实例。如果它被关闭,那么当它再次显示时它不会旋转。
如果您Activity.removeDialog()
使用ProgressDialog
id 调用而不是调用 ,则可以强制它重新创建自己Dialog.dismiss()
。这将关闭它并删除该引用,因此当Activity.onShowDialog()
下次调用时,它将使用Activity.onCreateDialog()
而不是仅Activity.onPrepareDialog()
创建一个全新的(和旋转的)实例。
确保如果你有一个ProgressDialog
可以被解雇或取消的,你设置一个监听器,这样你就可以调用Activity.removeDialog()
. 否则只会被驳回。您也可以在调用之前调用它Activity.showDialog()
。
希望对某人有所帮助。