Oreo: Остановить удаление уведомлений при смахивании - PullRequest
0 голосов
/ 29 октября 2018

Мой код:

mNotifyBuilder.setSmallIcon(R.drawable.ic_status_bar)
                .setContentTitle("")
                .setOngoing(true)
                .setAutoCancel(false)
                .setTicker("")
                .setColor(ContextCompat.getColor(mContext, R.color.folderlist_bg_music))
                .setChannelId(CHANNEL_ID)
                .setContent(remoteViews).build();

Отлично работает на других телефонах, но не работает на Vivo V7. При первом пролистывании уведомление удаляется и появляется снова. Но после второго удара он полностью исчезает.

Ответы [ 5 ]

0 голосов
/ 30 мая 2019

Это проблема телефона. То же самое работает для других телефонов, но не для телефонов Vivo. OEM-производители не должны отклоняться от базовой реализации, предоставляемой стандартным Android.

0 голосов
/ 29 октября 2018

Вариант 1: Вам нужно сделать следующее:

builder.setOngoing(true);

Вариант 2:

Notification notification = new Notification(icon, tickerText, when);
notification.flags = Notification.FLAG_ONGOING_EVENT;

Вариант 3:

NotificationCompat.Builder mBuilder =

                     new NotificationCompat.Builder(this)

                    .setSmallIcon(R.drawable.ic_service_launcher)

                    .setContentTitle("My title")

                    .setOngoing(true)  

                    .setContentText("Small text with details");
0 голосов
/ 29 октября 2018

запуск фиктивного переднего плана Service ... это будет сохранять уведомление во время работы.

Служба переднего плана выполняет некоторые операции, которые заметны для пользователя. Например, аудио приложение будет использовать сервис переднего плана для воспроизведения звуковой дорожки. Службы Foreground должны отображать Уведомление. Службы Foreground продолжают работать, даже когда пользователь не взаимодействует с приложением.

0 голосов
/ 29 октября 2018

Вы можете попробовать следующее:

builder.setOngoing(true); // Can't cancel your notification (except notificationManager.cancel(); )

См. Это Текущее уведомление

0 голосов
/ 29 октября 2018

Попробуйте добавить это:

notification.flags |= Notification.FLAG_NO_CLEAR;
...