我的应用程序从服务器接收通知。可能有许多种类。通过单击通知必须打开MyActivity。但只有在您点击最后一个通知时才会打开。按下之前的通知,任何结果都不会给出。当您按任何通知时我需要打开MyActivity
private void generateNotification(Context context, String title, String message) {
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);;
Intent intent = new Intent(context,MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_stat_gcm)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_gcm))
.setTicker("Новое сообщение")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle(title)
.setContentText(message)
.build();
notificationManager.notify(id++, notification);
}
答案 0 :(得分:1)
错误的PendingIntent标志,请参阅here:FLAG_CANCEL_CURRENT
- “应该在生成新的之前取消当前的那个”
你可能会使用PendingIntent.FLAG_ONE_SHOT
您发布的代码中的第4行:
PendingIntent pendingIntent = PendingIntent.getActivity(
context, 0, intent, PendingIntent.FLAG_ONE_SHOT); // flag change