通知在特定时间自动取消

时间:2015-12-24 07:20:06

标签: java android notifications broadcastreceiver alarmmanager

我是Java Coding的初学者,目前正在编写Android项目代码。现在,我正面临着一个问题。我希望我的application在特定时间自动删除notification

用户点击notification后,我设法解除了notification。但是,与此同时,如果用户没有对notification做出反应,我还希望notification在特定时间后自动消失。

请告诉我应该怎么做。如果可能的话,请提供一些例子。

4 个答案:

答案 0 :(得分:1)

您可以在调用显示通知的方法后立即启动计时器所需的秒数,并在计时器的onFinish()内添加以下内容:

NotificationManager nMgr = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancelAll();

答案 1 :(得分:0)

您可以设置计时器或类似闹钟的内容,当符合条件时,请使用以下方法取消:

 //clear all pending notifications
        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager nMgr = (NotificationManager) context.getSystemService(ns);
        nMgr.cancelAll();

答案 2 :(得分:0)

您可以使用Timer获取所需时间,并移除Notification您可以使用cancel()

nMgr.cancel(<notification-id>); // here you have to pass your notification id.

如果您要删除所有通知,请使用

nMgr.cancelAll();

如果您想在2秒后删除通知,则可以使用:

    Timer timer=new Timer();
    TimerTask task=new TimerTask() {

        @Override
        public void run() {
            nMgr.cancel(notification-id);
        }
    };

    timer.schedule(task, 2000);

答案 3 :(得分:0)

我建议使用处理程序方法从通知栏中删除通知。您可以在处理程序中指定以毫秒为单位的时间长度。只有在输入时间之后才会召回一次。

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