2012-09-13 9 views
6

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?

risposta

0

Molto probabilmente non si sta fermando il servizio

+0

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

+0

@ user1041858 Perché pensi che onDestroy non verrà chiamato in questo caso? –

+0

Ho questo problema quando il sistema Android distrugge automaticamente il servizio. – user1041858

0

override del metodo onStop per il lavoro del ciclo di vita in modo corretto.

1

Si consiglia di utilizzare questa opzione quando si desidera interrompere il servizio, che chiuderà la notifica e interromperà il servizio.

stopService(new Intent(MainActivity.this,MyService.class)); 
Problemi correlati