我已经被这个问题困扰了一段时间。当我有一个单独的Thread
/AsyncTask
运行时,如何正确处理屏幕方向的改变?目前,我的做法是
android:configChanges="orientation|keyboard|keyboardHidden"
在我的
AndroidManifest.xml
中使用configChanges
,但这并不是鼓励的做法:
注意:应尽量避免使用此属性,并仅在万不得已时使用。请阅读处理运行时更改以获取有关如何正确处理由于配置更改而导致的重启的更多信息。
此外,在2.3模拟器中,当切换到横屏
时,它可以工作,但切换回竖屏
会失败。
现在,我使用configChanges
的原因是,当用户切换方向时,我可能正在运行一个AsyncTask
,执行一些网络流量,并且我不希望它停止。
还有其他方法可以做到这一点吗?或者有没有办法修复2.3以切换回竖屏?
我知道onRetainNonConfigurationInstance
,但我不确定“保存”AsyncTask
实例是否是一个好主意,主要是因为扩展AsyncTask
的类不是静态的(因此它与Activity
相关联) - 它需要,因为在onPostExecute()
中调用Activity
实例的方法。