如何从状态栏中删除通知

How to remove a notification from the status bar

我正在 Android 中构建本地通知。我设法在状态栏中显示本地通知,但我无法使用 setAutoCancel() 或任何类似的方式隐藏它。这是我的代码:

我的用例是:我向用户显示一个本地通知,指示我正在做一些处理。当我完成处理后,我更改了通知中的文本

NotificationManager manager = NotificationManagerCompat.from( this );

NotificationBuilder builder = new NotificationCompat.Builder( getApplicationContext() );
builder.setOngoing( true )
       .setSmallIcon( R.drawable.X )
       .setContentTitle("Content title")
       .setPriority( NotificationCompat.PRIORITY_MAX )
       .setProgress( 100, 0, false );

Notification notification = builder.build();
notification.flags = Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR | Notification.FLAG_FOREGROUND_SERVICE;

manager.notify( 100, notification ); 

完成一些处理后,我希望能够清除通知,因此我执行以下操作:

PendingIntent btPendingIntent = PendingIntent.getActivity( this, 0, new Intent(  ), 0 );

NotificationCompat.Builder mb = new NotificationCompat.Builder(this);
mb.setSmallIcon( R.drawable.ic_action_X )
        .setLargeIcon( bitmap )
        .setContentTitle("Upload complete")
        .setAutoCancel( true );
mb.setContentIntent( btPendingIntent );
notificationManager.notify( 100, mb.build() );

通知会根据需要更改文本和图标,但是当用户点击通知时没有任何反应 - 通知不会被取消。

有没有办法对通知执行取消通知但不打开任何活动或其他任何内容的操作?

您可以使用 NotificationManager.cancel() 并传入在 notify 调用中使用的 ID 来删除通知。

notificationManager.cancel(100);