我如何以编程方式显示任务堆栈顶部的活动?

时间:2012-10-26 22:26:32

标签: android android-activity notifications android-pendingintent

我的应用程序启动前台服务与服务器保持连接。它显示了pendingIntent女巫显示MainActivity的通知。当我(用户)点击应用程序图标(在桌面或应用程序列表上)时,它显示“任务堆栈”。我的意思是如果它被推出MainActivity它显示它,如果用户去活动B或C(或午餐一些其他活动)它显示它(我的意思是来自任务堆栈的顶级活动)。有一个问题 - 如果用户点击通知他再次看到MainActivity(在堆栈的顶部),但我希望顶部的大头钉堆栈(活动B,C或其他女巫在最后由用户发送)。

当我为MainActivity设置属性“singleTask”时,一半解决了,现在它总是任务堆栈的根,但是失去了所有活动(B,C和其他用户被淘汰)。类似于Reuse Activity on Top of Stack simular的解决方案,但我只需要在root用户进行一次活动。

也许我的逻辑错了,我需要另一种方法来解决这个问题。但我想知道如何以程序方式显示任务堆栈(顶级活动),如应用程序图标吗?

1 个答案:

答案 0 :(得分:0)

文档Tasks and Back Stack介绍了如何正确处理导航。

简而言之,如果用户点击导航并将其带到应用中的“活动”,当他们点击“返回”时,他们应该会在应用的“活动”层次结构中显示,直到他们到达主屏幕。他们应该从不在另一个任务中进入堆栈。也就是说,如果它们位于活动C中的应用程序中,并且您发送了他们单击的通知,并将其带到活动A,则单击“返回”应将它们带到父级的,而不是如果他们想要去C,他们可以使用最近的。

在较旧的平台上,最新版本不可用。

这是设计的。

要构建合适的合成后栈,请使用TaskStackBuilder