4

Я начинаю программировать Java-кодирование и в настоящее время кодирую проект Android. Сейчас я столкнулся с проблемой. Я хочу, чтобы мой application автоматически удалял notification в определенное время.Уведомление Автоматическое отмена в определенное время

Мне удалось уволить notification после того, как пользователь нажмет на notification. Тем не менее, в то же время, я также хочу, чтобы notification автоматически исчезал через определенное время, если пользователь не реагировал на notification.

Просьба сообщить мне, как мне это сделать. Если возможно, предоставьте мне несколько примеров.

ответ

1

Вы можете запустить таймер для требуемых секунд, как только вы вызываете метод, чтобы показать уведомление и внутри onFinish() таймера вы можете добавить что-то вроде этого:

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

Вы можете установить таймер или что-то как сигнал тревоги и когда ваши критерии выполнены, отменить его с помощью:

//clear all pending notifications 
     String ns = Context.NOTIFICATION_SERVICE; 
     NotificationManager nMgr = (NotificationManager) context.getSystemService(ns); 
     nMgr.cancelAll(); 
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); 
0

я предлагаю использовать метод обработки для удаления уведомление из панели уведомлений. Вы можете указать временную длину в miliseconds у обработчика. это будет вызвано один раз только после введенного времени.

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