单击推送通知时如何正确制作重定向意图

时间:2017-05-11 08:53:02

标签: android notifications

当通知到来时,我对Android挂起意图感到不安。

我的应用程序的调用堆栈类似于A> B> C. 因此,如果没有A,就永远不能创建B,如果没有B,就永远不能创建C.

让我们调用将从通知中获取的活动D. 然后,当用户收到D的通知时,我希望它低于。

case1 A(MainActivity)是顶级活动,调用堆栈应为A> d

case2 B(SomeActivity)是顶级活动,调用堆栈应为A> B> ç

case3 C(anotherActivity)是顶级活动,调用堆栈应该是A> B> C> d case4 D是顶级活动,销毁旧D并创建新D. case5 app终止,调用堆栈应为A> d。

看起来很简单。但很难做到正确。 我的代码是

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; 当用户触摸通知时,我无法知道设备是否具有活动A. 我该怎么办?

0 个答案:

没有答案