Ho creato un'applicazione che mostra Notifica quando viene eseguito il metodo Service.onStartCommand()
e nasconde la notifica quando viene chiamato Service.onDestroy()
. Funziona bene per le normali chiamate a startService() e stopService().Rimuovere la notifica quando il servizio è stato distrutto da Android OS
Codice:
@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: Quando il mio servizio è distrutto dal sistema operativo Android() (Nel caso in cui non onDestroy()
chiamato), allora la notifica non viene rimosso. Quindi, come rimuovere la notifica quando il servizio viene distrutto dal sistema operativo Android stesso?
Sto arrestando il servizio e questo funziona correttamente in questo caso. Ma quando il mio servizio viene distrutto da Android OS() (potrebbe essere in memoria insufficiente o qualcos'altro), allora come rimuovere la notifica – user1041858
@ user1041858 Perché pensi che onDestroy non verrà chiamato in questo caso? –
Ho questo problema quando il sistema Android distrugge automaticamente il servizio. – user1041858