在我的应用程序中,我正在发布聊天通知,每当用户阅读聊天时,我都想删除通知。但是,如果用户选择打开气泡,我想保留它,直到用户手动关闭它。
当用户在气泡本身或主要活动中打开相关聊天时,我可以轻松地做到这一点,方法是重新发布通知并.setSuppressNotification(true)
调用其气泡元数据。效果正是我想要的;通知消失了,气泡仍然存在,并且气泡上的徽章被清除。
问题是,用户还可以在其他地方而不是在设备上阅读聊天。在这种情况下.setSuppressNotification()
可能不起作用:
如果发布气泡的应用不在前台,则此标志无效。如果应用程序可见且在屏幕上,则该应用程序被视为前台,请注意前台服务不符合条件。
有没有办法在应用程序处于后台时删除通知而不删除其气泡?
PS 其他应用程序是做什么的?
- Telegram 似乎保留了气泡,只有在您打开气泡本身时才会删除相关通知。即使您阅读主要活动中的聊天并关闭气泡,通知也会保留。我不认为这是可以接受的;
- 另一方面,只要您在应用程序中打开相关聊天,Signal 就会消除气泡。这对于一对一聊天来说可能是合理的,因为气泡无论如何都会重新出现在新消息上,但对于群聊,我想保留气泡;
- 人们(示例应用程序)将在删除通知时保留气泡。但是,作为不是真正的信使,它不必处理我的特定用例。