如何从窗口小部件打开新活动而不显示活动堆栈中的旧活动?

时间:2015-07-14 14:14:56

标签: android android-intent android-activity

在我的应用程序中有两个活动:A和B. A以通常的方式打开(来自启动器)。 B从小部件打开。 B还有#34;对话框"主题,所以我可以看到它下面的内容。

当app没有运行并且我从小部件打开B时,一切都正确,我在B下看到启动器。

当app运行并且我从widget打开B时,我看到它下面的A. 但我需要发射器在B下,而不是A.如何获得?

更新1

这是我得到的(当我点击小部件时)

enter image description here

这就是我需要的东西

enter image description here

2 个答案:

答案 0 :(得分:0)

您可能希望使用以下标志启动此活动:

FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_NO_HISTORY

因此,在您的小部件意图上,您可以正常添加它们:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                Intent.FLAG_ACTIVITY_NO_HISTORY);

答案 1 :(得分:0)

尝试使用支持库中的TaskStackBuilder构建PendingIntent。

或者,将这些标志添加到您的Intent:

Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_CLEAR_TASK |
            Intent.FLAG_ACTIVITY_TASK_ON_HOME