Как убрать уведомление после определенного времени в андроиде? - PullRequest
6 голосов
/ 23 марта 2011

Я создаю простое приложение для Android, в котором создано уведомление.

Теперь я хочу удалить уведомление, если пользователь не отвечает по истечении определенного времени

Это означает, что я хочуудалить уведомление через пять минут

Ответы [ 4 ]

10 голосов
/ 25 апреля 2018

Текущее правильное решение может использовать:

NotificationCompat.Builder # setTimeoutAfter (long)

3 голосов
/ 23 марта 2011

Что вам нужно, так это сочетание Alarmmanager и уведомителя.

Зарегистрируйте диспетчер аварийных сигналов, который будет вызывать службу через 5 минут, и используйте NotificationManager.cancel в реализации службы.

Пример службы сигнализации здесь . Я полагаю, вы знаете, использовать Диспетчер уведомлений .

0 голосов
/ 14 марта 2019
 NotificationCompat.Builder notification = new NotificationCompat.Builder(context)
                .setSmallIcon(Util.getNotificationIcon(context))
                .setContentTitle(new SessionManager().getDomainPreference(context))
                .setAutoCancel(true)
                .setOngoing(false)
                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setShowWhen(false)
                .setContentText(summaryText)
                .setTimeoutAfter(3000) // add time in milliseconds
                .setChannelId(CHANNEL_ID);
0 голосов
/ 20 июня 2016

AlarmManager чаще используется для сложных сервисов, которые должны работать в фоновом режиме при закрытии приложения. Вы также можете использовать классический Java Runnable в обработчике для простого небольшого потока.

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

Также смотрите здесь:

Очистка уведомления через несколько секунд

Вы также можете использовать TimerTask-Class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...