4

在 Android < 5.0 中使用 launchMode singleInstance 或 singleTask 时使用 startActivityForResult无法正常工作。但是,我使用该 launchMode 来避免 WebView 重新加载:

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

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

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

4

1 回答 1

2

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

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

于 2016-12-09T10:17:46.890 回答