设置 Android 通知的生存时间 (TTL)

问题描述 投票:0回答:3

我的 Android 应用程序通知仅在短时间内相关。 因此,如果用户在 X 分钟内没有与通知交互,我想删除该通知。有没有一种“开箱即用”的方法来做到这一点?
如果没有简单的方法可以做到这一点,这是我目前的计划:
保留通知 ID 加上 TTL,并有一个“清理”线程,该线程会不时唤醒并删除老化的通知。
还有更好的想法吗?

谢谢

android notifications ttl
3个回答
1
投票

这里你必须使用 Alarmmanager 和 notificationmanger 的组合。

注册警报管理器,它将在某个 X 时间调用服务并使用通知

服务实现中的Manager.cancel

有关警报服务的示例,请点击此链接:

http://www.javacodegeeks.com/2012/09/android-alarmmanager-tutorial.html


0
投票

我不认为这是处理处理程序的另一种方法,因为根据我的想法,它与您的第一个想法相同,因为在处理程序中,程序相同意味着这条消息在 X 分钟后处理,所以在这条消息中你必须传递你的 ttl 和通知 id,并且处理程序会在 x 分钟后将消息传递给服务,并且在服务中你必须这样做 NotificationManager.cance 并删除通知


0
投票

从 android 26 开始,NotificationCompat 有一个

setTimeoutAfter
:

指定应取消此通知的时间(如果尚未取消)。对 Build.VERSION_CODES.O 之前的版本无操作

© www.soinside.com 2019 - 2024. All rights reserved.