Cómo detener el service de notificación en Android Oreo

Nuestra aplicación tiene algunos services e intent-services que comienzan a ejecutarse cuando el usuario inicia la aplicación. Estos componentes deben iniciarse para continuar el process en ejecución, incluso si el usuario minimiza la aplicación.

En Android Oreo, nuestra aplicación comenzó a fallar debido a la falta de initialization de estos services utilizando startForegroundService(:intent) y startForeground(:id, :notification) . Lo hemos corregido adjuntando estas notifications como solicitado pero descubrimos un comportamiento extraño. Estas notifications aparecen incluso si la aplicación está en primer plano, ya que no tiene sentido porque nuestros services son muy cortos casi todo el time, pero se debe garantizar que se ejecuten el 100% del time. Es por eso que el process se ejecuta en un service y no en el context de la actividad. Me gustaría mostrar estas notifications solo cuando el usuario minimice la aplicación y el service esté activo. ¿Hay alguna forma de hacerlo?

enter image description here

No puedo cambiar este post, ¡muy molesto!

Aquí hay un código usado para crear el canal:

 const val SERVICE_CHANNEL_ID = "com.myFunnyApp.notifications" //..... if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val notificationService = context.getSystemService(Context.NOTIFICATION_SERVICE) (notificationService as? NotificationManager)?.let { notificationManager -> if (notificationManager.getNotificationChannel(SERVICE_CHANNEL_ID) == null) { val channel = NotificationChannel( SERVICE_CHANNEL_ID, context.resources.getString(R.string.test), NotificationManager.IMPORTANCE_MIN) channel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC notificationManager.createNotificationChannel(channel) return } } } 

En el service, el código se ejecuta:

 val notification = Notification.Builder(context, SERVICE_CHANNEL_ID) .setSubText("subText") //Not working .setContentText("contentText") //Not working .setSettingsText("settingsText") //Not working .setContentTitle("title") //Not working .build() startForeground(1, notification) 

Actualmente estoy probando en el emulador, no tengo ningún dispositivo Android Oreo.

¡Gracias!

EDIT 1: El text solo cambia si configura el ícono pequeño.