为什么仅在您单击最后一个通知时才会打开活动?

时间:2014-12-11 11:18:11

标签: android android-notifications

我的应用程序从服务器接收通知。可能有许多种类。通过单击通知必须打开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);
    }

1 个答案:

答案 0 :(得分:1)

错误的PendingIntent标志,请参阅hereFLAG_CANCEL_CURRENT - “应该在生成新的之前取消当前的那个”

你可能会使用PendingIntent.FLAG_ONE_SHOT

您发布的代码中的第4行:

PendingIntent pendingIntent = PendingIntent.getActivity(
    context, 0, intent, PendingIntent.FLAG_ONE_SHOT);  // flag change