¿Cuál es la forma correcta de detener un servicio que se ejecuta como primer plano?

Estoy intentando detener un servicio que se ejecuta como servicio de primer plano.

El problema actual es que cuando llamostopService() La notificación sigue en pie.

Así que en mi solución he añadido un receptor que estoy registrando dentro de laonCreate()

Dentro deonReceive() método que llamostopforeground(true) Y oculta la notificación. Y entoncesstopself() para detener el servicio.

Dentro deonDestroy() Yo desregistre el receptor.

¿Hay una manera más adecuada de manejar esto? porque stopService () simplemente no funciona.

@Override
public void onDestroy(){
  unregisterReceiver(receiver);
  super.onDestroy();
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta