启动外部活动,不会出现在后台堆栈中

时间:2012-05-28 16:32:22

标签: android android-intent android-activity back-stack

我需要暂时启动一个外部activity(这不是我的),然后我有一个service启动我之前的activity供用户查看

这很有效,但问题是当用户按下后退键时,他会到达外部activity

我在这里发布了两个不同的activity,一个用于外部activity,另一个用于activity返回(我需要使用FLAG_ACTIVITY_NEW_TASK因为service我是从FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET开始的。

对于这两次发布,我尝试了以下任意组合: FLAG_ACTIVITY_NO_HISTORYFLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_EXCLUDE_FROM_RECENTSactivity

没有任何帮助,我在按下后继续看到外部noHistory="true"

我在这里看到了一些类似的问题,但是他们在自己的应用中都有中间活动,因此他们可以在其上调用完成,或者在清单中设置{{1}}。

有什么想法吗?

更新: 似乎问题是我从服务中重新启动我以前的活动,这意味着我需要从Tasks and Back Stack的文档中给它FLAG_ACTIVITY_NEW_TASK:

  

FLAG_ACTIVITY_NEW_TASK在新任务中启动活动。如果任务是   已经为你现在开始的活动而运行,那个任务就是   带着它的最后一个状态恢复到前台   activity在onNewIntent()中接收新意图。 这产生了   与“singleTask”launchMode值相同的行为,在讨论中   上一节。

来自singleTask段落:

  

“singleTask”系统创建新任务并在新任务的根目录下实例化活动   ...   注意:虽然活动开始于   新任务,后退按钮仍然将用户返回到上一个   活性

所以我需要一个以某种方式覆盖此行为的标志......

0 个答案:

没有答案