如何在堆栈顶部重用活动

use*_*405 4 android

我的应用程序有一个名为"Main"的输入活动.在"Main"中,我调用其他三个活动A,B或C中的一个(基于首选项),然后立即退出/完成"Main",以便只有A,B或C处于活动状态.

我还在通知栏中有一个永久通知,用户可以下拉(随时)以方便地重新启动我的App(使用"Main"组件调用intent).

问题是如果我的应用程序已经运行并且用户下拉通知并重新启动,我会在之前的活动(也是A,或B或C)之上运行A或B或C. 我怎样才能避免这种情况(即重用堆栈顶部的活动)?

我尝试过Intent.FLAG_ACTIVITY_*,似乎没什么用.我
在Manifest中尝试过launchModes ,它似乎也没有用.有任何想法吗?任何帮助表示赞赏.... jh

use*_*405 5

我找到了一种方法来做我想做的事情(虽然我还在测试它)...

在Android Manifest中,对于活动A,B和C,我添加了以下行:

机器人:launchMode = "singleTask"

如果它们已经位于堆栈顶部,那么它就会重新使用活动A,B或C,这样它们就不会重新启动它们(这需要按两次BACK按钮退出任务).