targetSdkVersion vs. minSdkVersion:configChanges

Mal*_*lis 5 android

我希望在屏幕方向更改时避免重新启动活动.在较旧的sdk版本中,它是由configChanges="orientation"(在清单中)完成的.在新版本screenSize中添加了.

我的minSdk是8,targetSdk是17,我发现自己处于一个奇怪的情况:我不能把screenSize放入configChanges(因为minSdk)但是我的手机(4.1)会破坏方向改变的任何活动(因为targetSdk) .

有什么出路吗?我可以以某种方式防止这种破坏,而不必针对过时的Sdk(但仍然将它作为minSdk中的一个选项)?

BIO*_*ARD -1

啊我终于想出了解决方案:

就我们无法影响 screenSize 属性的“已知建议解决方案”而言,因为当我们指定 android:configChanges="screenSize" 时, eclipse 会在 screenSize 上触发 xml 解析错误,如果我们在 targetSdkVersion 12 或更低版本中指定,android 操作系统将不会在方向更改时重新启动活动。(而且我现在知道并且正在使用 targetSdkVersion 来识别最大支持的 sdk 版本。但是当我再次研究时,有 maxSdkVersion 。)

所以通过这个设置:

使用 sdk android:minSdkVersion="10" android:targetSdkVersion="12"
安卓:m​​axSdkVersion =“17”

...

android:configChanges="方向|..."

操作系统不会在方向更改时重新启动活动,应用程序仍将支持最小和最大 sdk 版本,但将以与 sdk 12 兼容的模式运行,sdk 12 是最高版本的 sdk,不会重新启动活动,这将解决上述问题。