点击通知只需工作一次

时间:2015-07-23 09:50:01

标签: android push-notification

我正在使用自定义通知接收器并在通知栏中显示它们。为了测试,我发送2个通知到我的手机。 我关闭应用程序,点击第一个通知,应用程序打开! 我关闭应用程序,点击第二个通知,没有任何反应!

 private void generateNotification(Context context, String title, JSONObject json, String text) {

        Intent intent = new Intent(context, home.class);

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);

        NotificationManager mNotifM = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setAutoCancel(true)
                        .setContentTitle(title)
                        .setContentText(text)
                        .setStyle(new NotificationCompat.BigTextStyle().bigText(text))
                        .setTicker(text)
                        .setLights(Color.GREEN, 500, 500);

        mBuilder.setContentIntent(contentIntent);

        mNotifM.notify(NOTIFICATION_ID, mBuilder.build());

    }

2 个答案:

答案 0 :(得分:1)

为每个待处理的意图使用不同的请求代码,或者不使用FLAG_ONE_SHOT标志

static count = 0;
...

PendingIntent contentIntent = PendingIntent.getActivity(context, count++, intent, PendingIntent.FLAG_ONE_SHOT);

答案 1 :(得分:1)

为不同的通知提供不同的请求代码。看看下面的代码

Random random = new Random();
int NOTIFICATION_ID = random.nextInt(9999 - 1000) + 1000;

 PendingIntent contentIntent = PendingIntent.getActivity(this, NOTIFICATION_ID,
            intent, PendingIntent.FLAG_ONE_SHOT);