取消/取消图标通知

时间:2018-09-22 12:30:45

标签: android onesignal

我正在使用OneSignal向我的用户显示通知。通知工作正常,但是,我注意到,如果我取消了在通知栏中“滑动”通知的通知,则该通知将永久保留,这是一张图片,该通知显示了应用图标上的通知,我希望在应用程序已打开:

icon

我已经看到了这个问题,表明我可以通过以下操作消除通知:

NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (nMgr!=null) {
    nMgr.cancelAll();
}

但是这取消了该通知栏中的通知,但是仍然保留了应用程序图标上的通知,您知道如何在打开应用程序后立即取消该通知吗?

编辑1:

我在OnCreateOnResume中也添加了上述内容,如下面的答案所述,但1仍显示在应用程序图标上。

2 个答案:

答案 0 :(得分:1)

我发现使用OneSignal可以通过在清单中添加以下内容来禁用徽章:

<application ...>

    <meta-data android:name="com.onesignal.BadgeCount" android:value="DISABLE" />

</application>

从8.0(API级别26)开始,可以通过调用following来禁用通知徽章:

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);

使用this库,我还可以在禁用徽章编号后手动设置它们。请注意,这仅支持某些制造的设备(三星,LG,索尼和HTC)。

答案 1 :(得分:-2)

上面的代码很完美,但是您需要做的就是将这段代码添加到onResume()中 喜欢

@Override
protected void onResume() {
    super.onResume();

    NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    nm.cancelAll();
}

那可以帮你。 :)