在我的应用程序中,我收到了来自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());
所以,请点击它时指导我如何删除我的通知。
答案 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链接进行参考
希望它能解决你的问题快乐编码