Creé una aplicación que muestra Notificación cuando se ejecuta el método Service.onStartCommand()
y oculta la notificación cuando se llama a Service.onDestroy()
. Funciona bien para llamadas normales a startService() y stopService().Eliminar la notificación cuando el servicio fue destruido por el sistema operativo Android
Código de servicio:
@Override
public IBinder onBind(Intent intent)
{
return null;
}
@Override
public void onCreate()
{
super.onCreate();
nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
//Some code here
showNotification();
return START_NOT_STICKY;
}
@Override
public void onDestroy()
{
super.onDestroy();
nm.cancel(R.string.service_started);
}
Problema: Cuando mi servicio es destruido por el sistema operativo Android() (En caso de que no se llama onDestroy()
), entonces la notificación no se elimina. Entonces, ¿cómo eliminar la notificación cuando el servicio es destruido por el propio sistema operativo Android?
Estoy deteniendo el servicio y esto funciona bien en ese caso. Pero cuando mi servicio es destruido por el sistema operativo Android() (puede estar en memoria baja u otra cosa) cómo eliminar la notificación – user1041858
@ user1041858 ¿Por qué crees que onDestroy no se llamará en este caso? –
Tengo este problema cuando el sistema Android destruye el servicio automáticamente. – user1041858