我有一个简单的用例。我有如下活动:
A > B > C
现在,我收到一个推送通知。
我在我的GCMIntentService课上做了以下工作:
onMessage中,

Intent notificationIntent = new Intent(context, A.class);
PendingIntent contentIntent =
PendingIntent.getActivity(context,0, notificationIntent,
PendingIntent.FLAG_CANCEL_CURRENT);
notification.setContentIntent(contentIntent);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP );

我的期望是活动B, C应该从Activity stack中删除,您应该重新定向到活动A
然而,发生的事情是,A被打开了;但是当你按后退按钮时,我又按那个顺序被C, B, A打开了!啊!
我做错了什么?
以下是我尝试过的:
我试过
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP, Intent.FLAG_ACTIVITY_SINGLE_TOP);
我保留了对上一个前台活动的静态引用,并将其作为context传递。
似乎什么都没用。

最佳答案

试试这个。可能会对你有帮助。一旦你测试过就告诉我。

        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(notificationIntent);

10-08 09:08