【问题标题】:AndroidManifest attributes depending on API levelAndroidManifest 属性取决于 API 级别
【发布时间】:2017-04-24 09:54:45
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不明白你为什么需要使用特殊的启动模式来避免WebView重新加载。你能详细说明一下吗?
  • 嗨@DavidWasser,我不确定它是否与网站的完成方式有关,但是每次应用程序进入后台时,当我恢复它时,WebView 会重新加载,所以任何对 HTML 所做的更改将丢失。我用谷歌搜索,发现答案 here 对我有用。
  • 听起来很奇怪。一般来说,不应使用特殊的启动模式singleInstancesingleTask。他们通常制造的问题多于解决的问题。但也许这是另一天的话题;-)

标签: android android-manifest android-api-levels


【解决方案1】:

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

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

【讨论】:

  • 好主意,我不知道 。我会试试这个。
  • 好吧,它不适用于我的具体情况(在 Android
  • 好的。祝你好运!
猜你喜欢
  • 2016-06-21
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多