推送通知未从Android中的通知栏中删除

时间:2014-08-06 05:49:26

标签: android push-notification google-cloud-messaging

在我的应用程序中,我收到了来自gcm的推送通知,如果我点击该推送通知,我的应用程序将打开,我需要从通知栏中删除我的通知。但是,它仍然在通知栏上。

我使用以下逻辑在GCMIntentService类中生成推送通知。

       mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        //PendingIntent contentIntent = PendingIntent.getActivity(this, 0,  new Intent(this, TipsActivity.class), 0);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, TipsActivity.class), 
                Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.icon)
        .setContentTitle("Appname")
        .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(msg))
        .setContentText(msg);

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

所以,请点击它时指导我如何删除我的通知。

2 个答案:

答案 0 :(得分:2)

您好,您必须添加以下行> ..

mBuilder.setAutoCancel(true); 

试试这个,让我知道反馈。

答案 1 :(得分:0)

根据我的猜测,由于通知标志

,它正在发生

您的代码中可能有与通知标志相关的行  可能该标志为FLAG_NO_CLEAR,因此请将该标记更改为FLAG_AUTO_CANCEL

如果你没有提到旗帜,你会在generateNotification逻辑中找到这个标志然后请指定为FLAG_AUTO_CANCEL

FLAG_NO_CLEAR 表示

如果在用户单击“全部清除”按钮时不应取消通知,则应将位置按位置进应设置的标志字段

FLAG_AUTO_CANCEL 表示

如果在用户点击通知时应取消通知,则应将位置按位进入应设置的标志字段。

这是示例行

notification.flags |= Notification.FLAG_AUTO_CANCEL;

其中通知 NotificationManager 的对象 使用this链接进行参考

希望它能解决你的问题快乐编码