Android 单击推送通知时如何正确进行重定向
当通知到来时,我对android待定的意图感到不安 我的应用程序的调用堆栈类似于A>B>C。 因此,没有A,B永远无法创建,没有B,C永远无法创建 让我们调用活动D,它将从通知中午餐。 然后,当用户收到关于D的通知时,我希望它在下面 案例1 A(MainActivity)是顶级活动,调用堆栈应为A>D 案例2 B(SomeActivity)是顶级活动,调用堆栈应该是A>B>C 案例3C(另一个活动)是顶层活动,调用堆栈应该是A>B>C>D 案例4 D是顶级活动,销毁旧D并创建新D。 案例5应用程序终止,调用堆栈应为A>D 看起来很简单。但很难做到正确。 我的密码是Android 单击推送通知时如何正确进行重定向,android,notifications,Android,Notifications,当通知到来时,我对android待定的意图感到不安 我的应用程序的调用堆栈类似于A>B>C。 因此,没有A,B永远无法创建,没有B,C永远无法创建 让我们调用活动D,它将从通知中午餐。 然后,当用户收到关于D的通知时,我希望它在下面 案例1 A(MainActivity)是顶级活动,调用堆栈应为A>D 案例2 B(SomeActivity)是顶级活动,调用堆栈应该是A>B>C 案例3C(另一个活动)是顶层活动,调用堆栈应该是A>B>C>D 案例4 D是顶级活动,销毁旧D并创建新D。 案例5应用程
Intent intent = D.getIntent(context, model.getTitle(), model.getId(), Intent.FLAG_ACTIVITY_NEW_TASK);
NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
PendingIntent mBoxPendingIntent = PendingIntent.getActivity(context, (int) model.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder b = new NotificationCompat.Builder(context)
.setStyle(bigTextStyle)
.setAutoCancel(true)
.setTicker(tickerText)
.setSmallIcon(smallIconRes)
.setContentTitle(model.getTitle())
.setContentText(model.getMessage())
.setContentIntent(mBoxPendingIntent)
.setWhen(when)
.setLights(0xFFBD5475, 500, 3000);
现在的问题是案例5。
如果在应用程序终止时发出触控通知,则D将独立启动,而无需;
我不知道当用户触摸通知时,设备是否会有活动A。
我该怎么办?您非常需要使用来构建您的活动堆栈@X3Btel的可能副本,非常感谢。它起作用了。但还有一个问题。我必须在D上创建一个再次按下后退按钮吗?情况是这样的。当前调用堆栈是A>D。现在获取新的通知,该通知将打开新的D而不是旧的D。按下通知,调用堆栈仍然是A>D。但是当我返回时,会重新创建A。我希望它只是恢复。这里是A.
的活动元,它也做错了。当返回堆栈是A>B>C时。当我返回时,它总是返回A(重新创建)并清除B,C。它应该是返回C。这是我的代码pendingent pendingent=TaskStackBuilder.create(context).addParentStack(A).addnextint(A).addnextint(D).getpendingent(0,pendingent.FLAG_UPDATE_CURRENT)代码>