6

我需要launchMode根据我的应用程序状态调用不同的活动。在一种情况下应该是singleInstance,在另一种情况下 - singleTask。我知道如何launchModeAndroidManifest中进行设置,但由于它应该是动态属性,所以我必须从代​​码中进行设置。我想,在开始活动之前,我可以在意图中添加一些特定的标志,但我发现只有singleTop标志。那么有什么办法可以解决这个问题吗?谢谢

4

3 回答 3

4

在我的情况下,我需要两个与不同 android API 级别相关的不同启动模式:在 AndroidManifest

android:launchMode="@integer/launchModeAPIlevel"

和文件夹内的不同整数值 values-18, values-21

<integer name="launchModeAPIlevel">1</integer>

启动模式 1 == singleTop singleTask == 2

于 2017-06-16T14:41:42.953 回答
3

经过一些调查,我注意到以这种方式不可能做到这一点。但好消息是我有一些解决方法:

您必须创建两个Activities,每个都有相应的 launchModes。一个Activity是真实Activity的,里面有你的代码,另一个只会ActivityonCreate()方法中调用 main ,但由于它需要launchMode,所以 mainActivity将以该模式启动。不是很好,但完全有效的解决方案。

之后,不要尝试打开你Activity的意图标志,而是根据你需要class启动模式输入意图。Activity

于 2013-12-03T11:05:34.200 回答
0

只需创建两个Activity A和B,B扩展A。在清单中为A声明launchMode="singleTask",为B声明launchMode="singleInstance"。并根据您需要的launchMode启动Activity。

于 2017-04-21T14:42:45.263 回答