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

Estoy tratando de detener un servicio que se está ejecutando como servicio de primer plano.

La edición actual es que cuando llamo a stopService() la notificación todavía permanece.

Así que en mi solución he añadido un receptor que estoy registrando en el interior de la onCreate()

Dentro del método onReceive() llamo stopforeground(true) y oculta la notificación. Y luego stopself() para detener el servicio.

Dentro de la onDestroy() I no registrado el receptor.

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

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

Desde su actividad, llame a startService (intención) y pase algunos datos que representarán una clave para detener el servicio.

Desde su servicio llame a stopforeground(true) y luego stopself() justo después.

Antes de llamar a stopService, ¿por qué no eliminas simplemente la notificación llamando a cancel ()? http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

  • Detener el servicio hasta que se pueda establecer conexión a Internet
  • ¿Puede existir un servicio de fondo sin su aplicación principal?
  • Temporizador La tarea deja de ejecutarse después de un tiempo indefinido en android
  • ¿Cómo comprobar el permiso automático de MIUI mediante programación?
  • ¿Cómo obtener una lista de servicios en ejecución en Android?
  • Cómo detectar la visibilidad del selector de método de entrada sin el permiso de accesibilidad
  • ¿Es posible ejecutar mi servicio por tiempo indefinido?
  • Notificación diaria de Android
  • El servicio de fondo de Android se está reiniciando cuando se cancela la aplicación
  • Servicio de Android: proceso vs. no
  • El archivo AIDL no genera un archivo Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.