我在AsyncTask对象的onPreExecute方法中显示了一个ProgressDialog,并在onPostExecute方法中取消了该ProgressDialog。在doInBackground方法中,我为用户注册发出一个超文本传输协议请求。我希望允许屏幕方向更改。当我在doInBackground方法仍在运行的时候改变方向时,我得到了各种有趣的错误,比如“IllegalArgumentException: View not attached to window manager”和“RegisterScreen has leaked window...”。
在方向更改后,如何正确地继续显示ProgressDialog?或者,在用户请求提交注册后,如何禁用方向更改?
发布于 2010-09-13 22:31:19
尝试将此属性android:configChanges="orientation"添加到AndroidManifest.xml文件中的Activity元素。
发布于 2010-09-13 00:02:28
您可以尝试在显示ProgressDialog期间禁用方向更改。
一开始要做的是:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);并在完成后返回:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);希望这能有所帮助。
(如果有人有合适的解决方案,我也很感兴趣:-)
发布于 2010-09-13 22:26:34
您希望正确处理活动生命周期,这意味着保存和恢复活动的状态,而不是试图阻止生命周期更改。做一些关于AsyncTask与活动生命周期的阅读。
例如:pause-and-resume-asynctasks-android和what-to-do-with-asynctask-in-onpause。
https://stackoverflow.com/questions/3695484
复制相似问题