AndroidManifest 属性取决于 API 级别

AndroidManifest attributes depending on API level

使用 startActivityForResult doesn't work properly in Android < 5.0 when using launchMode singleInstance or singleTask. 但是,我正在使用 launchMode 来避免 WebView 重新加载:

android:alwaysRetainTaskState="true"
android:documentLaunchMode="never"
android:launchMode="singleInstance"

我知道第一个限制没有可能的解决方法。

有没有办法根据 API 版本使这些清单属性成为变量?
(对于 Android > 5.0,我会使用这三个具有指定值的属性,对于 Android < 5.0,我将使用具有指定值的 launchMode="standard"非常类似于 ,只是我找不到定义 documentLaunchModelaunchMode 的方法;只有 alwaysRetainTaskState 因为它是布尔值)。

您可以创建一个 <activity-alias>,它使用相同的底层 Activity,但具有不同的清单参数(启动模式等)。然后您只需要确保启动正确的 Activity(原始版本或别名),具体取决于您 运行 使用的 Android 版本。

根据您的体系结构和问题的性质,这可能是也可能不是合适的解决方案。