2009-06-21 12 views
8

Ho un'applicazione che vorrei essere completamente disabilitata/chiusa quando è in pausa (IE. Quando l'utente preme il tasto Home, Fine (chiamata) e Indietro Vorrei che l'applicazione fosse chiuso, invece di essere salvato nello stack della cronologia).Killing applicazione Android in pausa

Come si fa a fare questo ....?

Grazie.

risposta

23

Implementare onPause() nella propria attività e chiamare finish() sulla propria attività. Tieni presente, tuttavia, che ciò si verificherà in ogni pausa, comprese le finestre di dialogo, le chiamate in arrivo, gli utenti che attivano un Notification. Si consiglia di prendere in considerazione l'esecuzione di finish() in onStop(), che risolverà almeno il problema di dialogo.

Inoltre, tenere presente che gli utenti potrebbero confondersi quando utilizzano la tua app, pensando che si sia arrestato in modo anomalo da quando è stato rimosso quando hanno cercato di tornare ad esso.

+0

Grazie per la risposta, ci proverò. L'applicazione deve funzionare in questo modo poiché vorrei solo che l'app fosse in esecuzione quando l'utente la ha in primo piano e lasciandola in esecuzione in background potrebbe causare un'estrema perdita di durata della batteria. – Tom

+1

In questo caso, non dovresti uccidere l'intera attività. Basta disabilitare qualunque cosa tu stia facendo che sta ruminando la durata della batteria e riattivarla in onStart() o onResume(). – CommonsWare

+0

Quando chiamo finish() in onPause() è appena forzato la chiusura. Idee? – Tom

2

si sa come si dispone di un metodo OnCreate() nella vostra attività che svolge azioni quando inizi. È necessario aggiungere qualcosa come:

@Override 

protected void onPause(){ 
finish(); 

     super.onPause(); 

} 

nella vostra attività per aggiungere le azioni prima del suo inizio

in questo caso il comando

finish(); 

è ciò che si desidera eseguire prima dell'attività pausa.