2010-06-16 52 views
4

我的应用程序有一个名为“Main”的单个入口活动。在“主”中,我打电话给其中三个 其他活动A,B或C(根据首选项),然后立即退出/完成 “Main”,以便只有A,B或C处于活动状态。如何重用堆栈顶部的活动

我还在通知栏 中有一个永久通知,用户可以随时拉下(随时)以方便地重新启动我的应用程序(调用意图 与“主”组件)。

的问题是,如果我的应用程序已经在运行和用户下拉通知 并重新启动,我得到A或B或C所述先前活动上运行(也有,或 B或C)。我该如何避免这种情况(即重复使用堆栈顶部的活动)?

我试过Intent.FLAG_ACTIVITY_ *并没有任何工作。我已经在Manifest中尝试了launchModes
,它似乎也没有工作。有任何想法吗?感谢所有帮助.... JH

回答

5

我找到了一种方法可以做到这一点我想要做什么(虽然我还在测试它)...

在Android清单,为活动A,B和C,I加入下列行:

机器人:launchMode =“singleTask”

这具有的结果重用活动A,B,或C,如果他们已经在 顶部堆叠的,以便他们不会在自己之上重新启动(其中 需要按两次BACK按钮退出任务)。

+1

从通知启动活动时,我发现这很有用,其中堆栈最终会有两个或更多(每个通知一个)同一活动的实例。结合onNewIntent,可以用新内容更新现有活动(通过Intent extras)。 – 2011-02-24 13:01:27