簡體   English   中英

取消/取消圖標通知

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM