我在这里查看了所有其他 AUTO-CANCEL-not-working 问题,它们似乎都涉及我没有犯的错误。我都试过了
builder.setAutoCancel(true);
和
Notification notif = builder.build();
notif.flags |= Notification.FLAG_AUTO_CANCEL;
两者都不起作用。
我正在使用 NotificationCompat,因为我的最低 API 是 8。这是我的完整代码。在这个特定的通知中,我没有调用意图,因为我不需要用户做任何事情。
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentTitle(getString(R.string.app_name) + ": my title");
builder.setContentText(message);
builder.setSmallIcon(R.drawable.notification_icon);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.prog_icon);
builder.setLargeIcon(bitmap);
builder.setAutoCancel(true); // dismiss notification on user click
NotificationManager notiManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notiManager.notify(MY_NOTI_MANAGER_ID, builder.build());
通知显示得恰到好处。您可以滑动以清除它。但只需点击它并不会关闭通知。它只是点亮并停留在那里。
我的代码与此处发布的其他代码之间可能存在一些差异:1)我正在使用 NotificationCompat(这应该不会产生影响,但我们之前已经听说过)。2)由于我的通知很简单,我没有附加意图。
如果您有任何见解,请告诉我。
编辑:我的目的是在不使我的后台应用程序前景化的情况下关闭通知。