2

ユーザーが通知を選択したときに通知を閉じたいです。これは、ユーザーに通知を表示するために使用しているコードです。これをGCM (Google Cloud Messaging)で使用しています。

private NotificationManager mNotificationManager;
    NotificationCompat.Builder builder;
    mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, DemoActivity.class), 0);
       NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_stat_gcm)
        .setContentTitle(" Notification")
        .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(msg))
        .setContentText(msg.toString());

        mBuilder.build().flags = Notification.FLAG_AUTO_CANCEL;
        Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        mBuilder.setSound(notificationSound);

        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

しかし、アクティビティを開いている通知を選択しているときに、これはうまく機能しませんが、通知を閉じていません。これで何がうまくいかなかったのか教えてください

4

4 に答える 4

3

試す

mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.cancel(NOTIFICATION_ID); // use this to cancel notification

または、試すことができます

mBuilder.setAutoCancel(true); //そのため、ユーザーがパネルで通知をクリックすると、通知は自動的にキャンセルされます

于 2013-09-03T09:46:53.510 に答える
1

使用するsetAutoCancel (boolean autoCancel)

Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel. The PendingIntent set with setDeleteIntent(PendingIntent) will be broadcast when the notification is canceled.

参照: http://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setAutoCancel(boolean)

于 2013-09-03T09:46:52.190 に答える
1

これらの行を削除するだけです:

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, DemoActivity.class), 0);

mBuilder.setContentIntent(contentIntent);
于 2013-09-03T09:45:01.267 に答える
0
            Notification notification = new Notification(
                    YOUR_DRAWABLE_RESOURCE, "Message",
                    System.currentTimeMillis());
            notification.flags = Notification.FLAG_AUTO_CANCEL;

FLAG_AUTO_CANCELを選択すると通知をキャンセルできます。

于 2013-09-03T09:52:00.693 に答える