gpt4 book ai didi

android - targetSdkVersion 与 minSdkVersion : configChanges

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:26 25 4
gpt4 key购买 nike

我想避免 Activity 在屏幕方向改变时重新启动。在旧的 sdk 版本中,它是由 configChanges="orientation" (在 list 中)完成的。在较新的版本中,添加了 screenSize

我的 minSdk 是 8,targetSdk 是 17,我发现自己处于一个奇怪的境地:我不能将 screenSize 放入 configChanges(因为 minSdk)但是我的手机(4.1)然后会破坏方向改变的任何 Activity (因为targetSdk)。

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

最佳答案

您可以保留当前拥有的 android:minSdkVersionandroid:targetSdkVersion(在您的示例中为 8 和 17)。

为了能够将screenSize放入configChanges中,更改这一行

target=android-someapinumber

project.properties 文件中。选择 someapinumber 作为 screenSize 首次出现的 android 版本(例如,API 13)。

虽然你问的是一个特定的“screenSize”问题,但这个解决方案适用于所有类似的情况,你想要支持旧设备,但同时你必须使用更新的功能。在这种特殊情况下,“screenSize”将被不知道此属性的旧设备忽略,因此您不必担心向后兼容性。在其他情况下,您可能必须在源代码中添加条件,如下所示,以确保在运行时您的应用不会使用给定(旧)Android 版本中不可用的功能。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) 
{
// Code that uses features available in LOLLIPOP and newer
// versions of android, while the app also runs on older versions
// and supports them because of android:minSdkVersion.
}

关于android - targetSdkVersion 与 minSdkVersion : configChanges,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com