如何使用ProgressDialog显示处理方向更改?

jam*_*mes 17 android progressdialog orientation

ProgressDialogonPreExecuteAsyncTask对象的方法中显示a 并取消onPostExecute方法中的ProgressDialog .在doInBackground方法中,我正在为用户注册发出HTTP请求.我希望允许更改屏幕方向.当我在doInBackground方法仍在运行时更改方向时,我会收到各种有趣的错误,例如'IllegalArgumentException:View not attached to window manager'和'RegisterScreen has leaked window ...'

如何ProgressDialog在方向改变后正确地继续显示?或者,在用户请求提交注册后,如何禁用方向更改?

Rag*_*har 15

尝试将此属性添加android:configChanges="orientation"到文件中的Activity元素AndroidManifest.xml.

  • 我必须为此添加"screenSize"以针对API级别13及更高版本.否则它不适用于这些环境.机器人:configChanges = "方向|屏幕尺寸" (8认同)

Sec*_*Sec 6

您可以尝试在显示时禁用方向更改ProgressDialog.

在开始时做:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
Run Code Online (Sandbox Code Playgroud)

并在完成后启用:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

(如果有人有适当的解决方案,我也会感兴趣:-)

  • 问题不在于方向改变.由于活动生命周期,您会看到这些问题,这会破坏并重新创建您的活动.防止方向更改将阻止生命周期的这个特定实例,但是当用户在ProgressDialog期间按下"Home"并返回时,将出现同样的问题.您的活动应设计为随时关闭并重新启动. (2认同)