我在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
复制相似问题