Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Pantheonptz
1 / 1 / 3
Регистрация: 05.05.2017
Сообщений: 426
Завершенные тесты: 1
1

Notification как убрать программно?

09.09.2019, 17:14. Просмотров 152. Ответов 6
Метки нет (Все метки)

При запуске сервиса, он создает уведомление.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void sendNotif() {
        Intent resultIntent = new Intent(this, MainActivity.class);
        PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
 
        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.mipmap.ic_launcher_foreground)
                        .setContentTitle("Навигатор")
                        .setContentText("Идет передача координат")
                        .setContentIntent(resultPendingIntent);
 
        Notification notification = builder.build();
        notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
 
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        notificationId = (int)(System.currentTimeMillis()%10000);
        notificationManager.notify(notificationId, notification);
    }
в обработчике onDestroy удаляю уведомление но оно не пропадает
Java
1
2
3
4
5
6
7
8
9
@Override
    public void onDestroy() {
        executor.shutdown();
        MainActivity.isServiceAlive = false;
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        notificationManager.cancel(notificationId);
        super.onDestroy();
    }
Как удалить его программно?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2019, 17:14
Ответы с готовыми решениями:

Как убрать маленькую иконку в правом нижнем углу notification?
Здравствуйте! Как убрать маленькую иконку в правом нижнем углу notification? Добавлено через 13...

Как программно убрать клавиатуру после нажатия кнопки "Далее"?
Здравствуйте, уважаемые форумчане. Я недавно начал изучать android и столкнулся со следующей...

Как остановить сервис по нажатию на Notification
в сервисе создаю сообщение: NotificationCompat.Builder builder = new...

Как вызвать Notification в Broadcast Receiver?
нужно чтобы по событию в классе Broadcast Receiver, а точнее в методе onReceive() запустить метод...

Убрать примененный к EditText метод setOnFocusChangeListener программно
Есть массив - masLinnerov. Есть view - EditText. Каждый раз, как EditText в фокусе - в массив...

6
ExFau$t
920 / 731 / 215
Регистрация: 08.05.2012
Сообщений: 3,525
09.09.2019, 17:54 2
Если нужен метод цикла при закрытии активити, то используют метод onStop().
0
Pantheonptz
1 / 1 / 3
Регистрация: 05.05.2017
Сообщений: 426
Завершенные тесты: 1
09.09.2019, 18:53  [ТС] 3
это при закрытии сервиса не активити
0
ExFau$t
920 / 731 / 215
Регистрация: 08.05.2012
Сообщений: 3,525
09.09.2019, 20:45 4
super.onDestroy(); перемести в самое начало метода.
0
Pantheonptz
1 / 1 / 3
Регистрация: 05.05.2017
Сообщений: 426
Завершенные тесты: 1
10.09.2019, 14:15  [ТС] 5
Убрать уведомления это не помогло
0
ExFau$t
920 / 731 / 215
Регистрация: 08.05.2012
Сообщений: 3,525
10.09.2019, 14:35 6
Попробуй создать метод для завершения работы сервиса и убей его:
Java
1
2
3
4
5
6
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                    if (notificationManager != null) {
                        notificationManager.cancelAll();
                    }
                    stopForeground(true);
                    stopSelf();
Добавлено через 1 минуту
И id для уведомления желательно делать константой.
1
Pantheonptz
1 / 1 / 3
Регистрация: 05.05.2017
Сообщений: 426
Завершенные тесты: 1
10.09.2019, 17:12  [ТС] 7
Помогло следующее, правда не тестировал как это будет работать на Api >= 26
Java
1
2
3
4
5
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
        notificationManager.notify(notificationId, builder.build());
Как я вычитал здесь - https://habr.com/ru/post/349102/ убить уведомление foreground service не так то просто, но мне нужен именно сервис переднего плана, т.к. нужно на фоне раз в минуту передавать координаты в течение длительного времени, так чтобы система не убила сервис.
0
10.09.2019, 17:12
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2019, 17:12

Как программно удалить кнопку которую программно создал но только если она уже существует
Есть ScrollView в котором много компонентов,чтоб не выводить сразу все решил выводить по 10 штук и...

Как убрать границы таблицы программно?
В документе есть ричтекстовое поле. Нужно программно создать в нем таблицу, но не отображать ее...

Как программно убрать сообщение об ошибке сценария
Код программы: .686 .model flat,stdcall option casemap :none...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.