Android: 从通知栏中删除通知

我已经创建了一个应用程序和一个事件,我设法添加通知在 android 通知栏。现在我需要示例如何从事件的通知栏中删除该通知? ? ?

242074 次浏览

使用“ Go To Find Combo Box”和“ >”命令。 CTRL + /CTRL + D是标准的热键。

这很简单。您必须在 NotificationManager 上调用 cancelcancelAll。取消方法的参数是应该取消的通知的 ID。

参见 API: http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

您可以尝试这个快速代码

public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}

例如,转到组合框(CTRL + /)并键入: >of MyClassName。当你输入时,智能感知将改进下拉列表中的选项。

使用 NotificationManager 取消通知。您只需提供通知 ID

根据我的经验,这比 导航到更快,而且不会产生另一个对话来处理。此外,这个组合框还有许多其他漂亮的小快捷命令:

取消(您的 _ 通知 _ ID) ;

使用“查找”组合框

也检查这个链接 参见开发者链接

您还可以在通知管理器上调用 cancelAll,因此您甚至不必担心通知 ID。

NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();

编辑: 我投了反对票,所以也许我应该指定,这将只删除通知从您的应用程序。

VisualStudio 代码中,默认的快捷方式是 Ctrl + P

简单地设置 setAutoCancel (True) ,如下面的代码所示:

Intent resultIntent = new Intent(GameLevelsActivity.this, NotificationReceiverActivityAdv.class);


PendingIntent resultPendingIntent =
PendingIntent.getActivity(
GameLevelsActivity.this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);


NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
getApplicationContext()).setSmallIcon(R.drawable.icon)
.setContentTitle(adv_title)
.setContentText(adv_desc)
.setContentIntent(resultPendingIntent)
//HERE IS WHAT YOY NEED:
.setAutoCancel(true);


NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(547, mBuilder.build());`
等待意图 = 活动(

如果要生成在 前景中启动的 来自服务的通知,请使用

startForeground(NOTIFICATION_ID, notificationBuilder.build());
游戏水平活动,

然后发出

notificationManager.cancel(NOTIFICATION_ID);
0,

取消通知和通知仍然出现在状态栏中。在这个特殊的例子中,你将用两种方法来解决这些问题:

结果意图,

1 > 使用 stop Foreground (false)内部服务:

stopForeground( false );
notificationManager.cancel(NOTIFICATION_ID);
FLAG _ UPDATE _ CURRENT );

用调用活动破坏该服务类:

Intent i = new Intent(context, Service.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
if(ServiceCallingActivity.activity != null) {
ServiceCallingActivity.activity.finish();
}
context.stopService(i);
NotificationCompat.Builder = new NotificationCompat.Builder (

第二种方式更喜欢在 音乐播放器通知,因为他们的方式不仅通知删除,但删除播放器也... ! !

GetApplicationContext () . setSmallIcon (R.draable.icon)

这将有所帮助:

NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
. setContentTitle (adv _ title)

这应该可以删除应用程序发出的所有通知

. setContentText (adv _ desc)

如果通过调用

startForeground();

在一个服务中。您可能需要调用

stopForeground(false);
//这是你需要的:

首先,然后取消通知。

. setAutoCancel (true) ; NotificationManager 管理器 = (NotificationManager) getSystemService (Context.NOTIFATION _ SERVICE) ;

在 Android API > = 23上,您可以执行类似的操作来删除一组通知。

  for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}

下面是来自 Android 文档的例子:

NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);

Visual Studio 2017中的 Ctrl + T

请试试这个,

public void removeNotification(Context context, int notificationId) {
NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
}
Ication (上下文上下文,int notificationId){

只要打电话给 ID:

public void delNoti(int id) {((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).cancel(id);}

Try: ctrl + P 尝试: ctrl + P

如果上面的键快捷方式不起作用,对象浏览器应该在视图菜单的某个地方有一个不同的快捷方式。如果所有这些都失败了,在 Tools-> Options-> Environment-> Keyboard-> “ Show command  包含”下搜索“ ObjectBrowser”。

它会帮助你的

private var notificationManager = NotificationManagerCompat.from(this)
notificationManager.cancel("your_notification_id")

类型:@

如果像这样开始通知前景

startForeground("your_notification_id",notification.build())

后面跟着要搜索的类、方法或变量的名称。

那么你也应该停止前台服务

notificationManager.cancel("your_notification_id")
stopForeground(true)