我有点问题,看了很多地方我似乎找不到答案。
我有一项服务,该服务检查网站上的通知并提醒用户有新通知。当用户点击这个通知时,它应该把他们带到一个活动中(我称之为 CommentActivity)
但是,如果我单击应用程序内的通知,则什么也不会发生。如果我单击应用程序外部的通知,它会打开应用程序关闭之前显示的最后一个活动。
这是我显示通知的代码:
Notice n; //Notification from site
....
Intent nIntent = new Intent(Intent.ACTION_MAIN);
nIntent.setClass(getApplicationContext(), CommentActivity.class);
nIntent.putExtra("activity_id", n.getFeedID());
nIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, nIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(FlankNotificationService.this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(n.getTitle())
.setContentText(n.getText())
.setContentInfo(arg0.getNotificationAmount() + " notification" + (arg0.getNotificationAmount() == 1 ? "." : "s."))
.setContentIntent(pIntent);
Notification mm = mBuilder.getNotification();
mm.flags = Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
mm.tickerText = n.getText();
....
mNM.notify(1558, mm);
因此,它不会打开 CommentActivity,而是恢复应用程序(如果应用程序未打开)或不执行任何操作(如果应用程序已打开)
谢谢你。
编辑1:
向 Intent 添加了 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 标志。仍然没有解决问题。
编辑2:
我找到了问题的原因(这是一个相当愚蠢的原因)。当 CommentActivity 启动时,如果它没有从 savedInstance 或 Intent.getExtra 获得任何数据,那么它将关闭。起初我没有想到这一点的原因是因为它甚至没有显示过渡。修复 Intent.getExtra 问题后,它现在可以工作了。谢谢你的所有答案。