Я искал тот же ответ, однако ни один из ответов здесь не работал для меня, потому что я хотел использовать методы диалога Деятельности, такие как Activity.showDialog()
, поэтому мне не пришлось управлять ими самостоятельно, а также, чтобы они автоматическивоссоздается при вращении.
Как и в некоторых других ответах, если dismiss () вызывается для ProgressDialog
, он прекращает вращаться.Activity.onCreateDialog()
сохраняет ссылку на диалог, поэтому после его создания он не будет воссоздан при следующем вызове Activity.showDialog()
.Он просто вызовет Activity.onPrepareDialog()
и будет использовать уже существующий экземпляр.Если он был отклонен, он не будет вращаться при повторном показе.
Вы можете заставить его воссоздать себя, если вы позвоните Activity.removeDialog()
с идентификатором ProgressDialog
вместо вызова Dialog.dismiss()
.Это отклонит его, а также удалит эту ссылку, поэтому, когда Activity.onShowDialog()
вызывается следующим, он будет использовать Activity.onCreateDialog()
вместо только Activity.onPrepareDialog()
и создаст новый (и вращающийся) экземпляр.
Убедитесь, что выЕсли у вас есть ProgressDialog
, который можно отменить или отменить, вы установите слушателя, чтобы вы могли позвонить Activity.removeDialog()
.В противном случае он будет только уволен.Вы также можете позвонить прямо перед тем, как позвонить Activity.showDialog()
.
Надеюсь, это кому-нибудь поможет.