[英]Cancel/dismiss notification on icon
我正在使用OneSignal向我的用户显示通知。 通知工作正常,但是,我注意到,如果我取消了在通知栏中“滑动”通知的通知,则该通知将永久保留,这是一张图片,该通知显示了应用图标上的通知,我希望在应用程序已打开:
我已经看到了这个问题,表明我可以通过执行以下操作消除通知:
NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (nMgr!=null) {
nMgr.cancelAll();
}
但这会取消该通知栏中的通知,但是应用程序图标上的通知仍然保留,您知道如何在打开应用程序后立即取消该通知吗?
编辑1:
我将上述内容添加到OnCreate
,也添加到了OnResume
如下面的答案中所述,但是1
仍显示在应用程序图标上。
我发现使用OneSignal可以通过在清单中添加以下内容来禁用徽章:
<application ...>
<meta-data android:name="com.onesignal.BadgeCount" android:value="DISABLE" />
</application>
从8.0(API级别26)开始,可以通过调用以下命令禁用通知徽章:
String id = "my_channel_01";
CharSequence name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.setShowBadge(false);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.createNotificationChannel(mChannel);
使用此库,我也可以在禁用徽章编号后手动设置它们。 请注意,这仅支持某些制造的设备(三星,LG,索尼和HTC)。
上面的代码是完美的,但是您需要做的就是将代码添加到onResume()
@Override
protected void onResume() {
super.onResume();
NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancelAll();
}
多数民众赞成为您解决这个问题。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.