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"
。非常类似于 ,只是我找不到定义 documentLaunchMode
和 launchMode
的方法;只有 alwaysRetainTaskState
因为它是布尔值)。
您可以创建一个 <activity-alias>
,它使用相同的底层 Activity
,但具有不同的清单参数(启动模式等)。然后您只需要确保启动正确的 Activity
(原始版本或别名),具体取决于您 运行 使用的 Android 版本。
根据您的体系结构和问题的性质,这可能是也可能不是合适的解决方案。
使用 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"
。非常类似于 documentLaunchMode
和 launchMode
的方法;只有 alwaysRetainTaskState
因为它是布尔值)。
您可以创建一个 <activity-alias>
,它使用相同的底层 Activity
,但具有不同的清单参数(启动模式等)。然后您只需要确保启动正确的 Activity
(原始版本或别名),具体取决于您 运行 使用的 Android 版本。
根据您的体系结构和问题的性质,这可能是也可能不是合适的解决方案。