我需要launchMode
根据我的应用程序状态调用不同的活动。在一种情况下应该是singleInstance
,在另一种情况下 - singleTask
。我知道如何launchMode
在AndroidManifest中进行设置,但由于它应该是动态属性,所以我必须从代码中进行设置。我想,在开始活动之前,我可以在意图中添加一些特定的标志,但我发现只有singleTop
标志。那么有什么办法可以解决这个问题吗?谢谢
问问题
10245 次
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
的,里面有你的代码,另一个只会Activity
在onCreate()
方法中调用 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 回答