【问题标题】:Clearing notification after a few seconds几秒钟后清除通知
【发布时间】:2020-09-28 11:18:46
【问题描述】:

当您打开消息活动并且手机收到新消息时,状态栏上会显示一条通知。一段时间后,通知将被删除。

是否可以在几秒钟后不使用计时器清除通知的情况下对我的活动执行相同的操作?

【问题讨论】:

    标签: android notifications


    【解决方案1】:

    我认为没有办法只使用 NotificationManager 来取消通知,但您可以使用更简单的 Handler 来完成。在您触发通知后立即添加一些这样的代码。

    Handler h = new Handler();
    long delayInMilliseconds = 5000;
    h.postDelayed(new Runnable() {
        public void run() {
            mNotificationManager.cancel(YourNotificationId);
        }
    }, delayInMilliseconds);
    

    【讨论】:

    • 出于兴趣 为什么使用 Handler 而不是 Timer?
    • 我不知道类的内部工作原理是否有真正的原因,这只是本能的事情,因为您需要运行一次的东西。 Timer 可以用来运行一次,也可以用来重复运行。我一直认为 Handler 是在你告诉它时运行一次的东西,那是你的用例,所以对我来说很有意义。
    【解决方案2】:

    好吧,当Notification.Builder 具有.setTimeoutAfter(long milliseconds) 方法时,不需要处理程序/服务:

    因此只需调用:

    builder.setTimeoutAfter(time_in_milliseconds);
    

    欲了解更多信息,请参阅setTimeoutAfter(long)

    【讨论】:

    • 我不知道为什么这不是公认的答案
    • 如果我想在用户未与通知交互并且超时时执行操作怎么办
    • 您可能需要一个倒数计时器。如果等待时间太长。显示为前台服务通知可能@lolowa
    • 注意:在 O (api v26) 之前的版本上是无操作的
    猜你喜欢
    • 2016-01-13
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多