当通知到来时,我对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. 我该怎么办?