我有一个简单的用例。我有如下活动: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);