如何在Android应用程序中点击后隐藏通知

时间:2014-03-06 07:02:00

标签: android notifications

这是在服务开始时发出通知的代码

NotificationCompat.Builder mbuild = new NotificationCompat.Builder(getApplicationContext());

Intent in = new Intent(getApplicationContext(), MainActivity.class);
PendingIntent resultIN =   PendingIntent.getActivity(getApplicationContext(),code,in,NOTIFICATION_COUNT);           mbuild.setSmallIcon(R.drawable.images1);    
mbuild.setContentText(NOTIFICATION_COUNT +" New Message");
mbuild.setContentIntent(resultIN);          //mbuild.addAction(R.drawable.notifications,NOTIFICATION_COUNT +"New Messages",resultIN);

 NotificationManager nmagr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nmagr.notify(1, mbuild.build());

每个人都正常工作..代码会打开目标活动,但通知仍会保留在通知栏中。 我尝试过使用mbuil.setautocancel(true);但它无所事事

4 个答案:

答案 0 :(得分:8)

试试这个

NotificationManager nmagr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            Notification notification=mbuild.build();
            notification.flags = Notification.FLAG_AUTO_CANCEL;
            nmagr.notify(1,notification);

答案 1 :(得分:2)

您没有设置setAutoCancel(true)

只需设置此

即可
mbuild.setAutoCancel(true)

mbuild.getNotification().flags |= Notification.FLAG_AUTO_CANCEL

<强>更新

您也可以尝试以下代码。

NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
mgr.cancel(1); // here is "1" is your notification id which you set at "nmagr.notify(1, mbuild.build());"

onCreate()的{​​{1}}方法中编写上述代码。

答案 2 :(得分:1)

NotificationManager notification_manager = (NotificationManager) getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
                                notification_manager.cancel(NOTIFICATION_ID);

答案 3 :(得分:0)

使用NotificationCompat和/或使用Notificaitoncompat.Builder对任何人进行更新。

这就是我的做法:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this);

builder.setContentTitle(title);

/* your own code here */

builder.setAutoCancel(true); 

Notification notification = builder.build();
NotificationManagerCompat.from(this).notify(0,notification);

请务必注意,如果您使用待定意图将用户重定向到应用中的特定意图,则还会调用待处理意图。

根据文件:

  

设置此标志将使用户在用户单击面板时自动取消通知。取消通知时,将广播使用setDeleteIntent设置的PendingIntent。