啊哈,我只需要使用PendingIntent.getActivities()
而不是getActivity()
. 另外值得一提的是TaskStackBuilder
这是一些代码:
Intent backIntent = new Intent(ctx, MainActivity.class);
backIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Intent intent = new Intent(ctx, ConversationActivity.class);
intent.putExtra("whatever", whatever);
final PendingIntent pendingIntent = PendingIntent.getActivities(ctx, UNIQUE_REQUEST_CODE++,
new Intent[] {backIntent, intent}, PendingIntent.FLAG_ONE_SHOT);
刚刚测试过了。它就像一个魅力。我最初怀疑如果应用程序已经在运行,可能会出现问题,然后你去通知。即说你的活动堆栈是(最右边):
[MainActivity] [SomeActivity]
然后单击 的通知ConversationActivity
。你会得到:?
[MainActivity] [SomeActivity] [MainActivity] [ConversationActivity]
好吧,事实证明你神奇地得到了
[MainActivity] [SomeActivity] [ConversationActivity]
这就是我想要的,但我不知道它是如何做到的。我没有对任何活动设置任何特殊选项。那好吧!