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