Уведомление startForeground () не работает во второй раз - PullRequest
0 голосов
/ 24 января 2020

Я создаю уведомление, используя класс обслуживания. Он работает нормально при значениях ниже android O, но для более высоких версий уведомление отображается впервые, а если я пытаюсь показать его во второй раз, оно не отображается. Ниже мой код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        Log.e("inside here", "inside ");
        NotificationManager manager = (NotificationManager) service.getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationChannel channel = new NotificationChannel(PRIMARY_CHANNEL, PRIMARY_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW);
        channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        manager.createNotificationChannel(channel);
    }

    NotificationCompat.Builder builder = new NotificationCompat.Builder(service, PRIMARY_CHANNEL)
            .setAutoCancel(false)
            .setContentTitle(strLiveBroadcast)
            .setContentText(strAppName)
            .setLargeIcon(largeIcon)
            .setContentIntent(pendingIntent)
            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
            .setSmallIcon(android.R.drawable.stat_sys_headset)
            .addAction(icon, "pause", action)
            .addAction(R.drawable.ic_stop_white, "stop", stopAction)
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .setWhen(System.currentTimeMillis())
            .setStyle(new android.support.v4.media.app.NotificationCompat.MediaStyle()
                    .setMediaSession(service.getMediaSession().getSessionToken())
                    .setShowActionsInCompactView(0, 1)
                    .setShowCancelButton(true)
                    .setCancelButtonIntent(stopAction));

    service.startForeground(NOTIFICATION_ID, builder.build());

Это работает совершенно нормально в более низких версиях.

1 Ответ

0 голосов
/ 24 января 2020

startForeground() не работает с уведомлениями. Если для параметра NOTIFICATION_ID установлено значение 0 ИЛИ вам необходимо добавлять случайные идентификаторы logi c при каждом вызове.

startForeground(0, notification); // Doesn't work...

startForeground(1, notification); // Works!!!

Я надеюсь, что это сработает !!

...