Programmazione Exit Applicazione Android senza finitura ( )

? Josh @ | Original: StackOverFlow
---

Prima mi dici che questa domanda è già stata posta, lasciate che vi dica che nessuna di queste domande hanno una risposta che mi si addice . Ho un attività principale per la mia app . Prima che funziona, ho una schermata di avvio attività . Se io chiamo finitura ( ), il programma ritorna al mio splash screen . Io non voglio questo . Non dirmi di usare finitura ( ) . Ho sentito dire che è cattiva pratica di non lasciare Android chiudere l'applicazione sul proprio . Io so quello che sto facendo ... probabilmente ....

Voglio essere in grado di chiudere completamente l'applicazione dal seconda attività . Qualcuno sa di un modo per fare questo ?

---

Top 5 Risposta

1dextor @

EDIT : tanto per essere chiari, questo non è il modo giusto di uscire da un'applicazione . Utilizzare a proprio rischio . Il PO chiedeva Un modo di chiudere l'applicazione, anche se non era il modo corretto .

System.exit(0)

E 'questo quello che stai cercando ?

2Nicolas Defranoux @

Finiture ( ) nella schermata iniziale appena prima di creare la vostra seconda attività, quindi utilizzare finiture ( ) è la seconda attività : che non riporterà la schermata iniziale .

3nKn @

Anche se non lo volete, mi dispiace dirvi che l'unico modo di uscire pulito sta usando finish() . Se hai qualche problema chiudendo Activities sullo sfondo, c'è un'altra soluzione per esso, controlla http://stackoverflow.com/questions/14001963/finish-all-activities-at-a-time .

Fondamentalmente non c'è un solo click o all- at-once modo per ottenerlo, e non usano System.exit(), si tratta di una cattiva pratica, come si può leggere http://stackoverflow.com/questions/17899668/android-app-behaving-unexpectedly-after-calling-system-exit0 .

4marcinj @

Finish è la strada da percorrere . Si può effettivamente chiudere l'attività SplashScreen una volta che non è più necessario . Ie . dopo SplashScreen non è più necessario, basta chiamare finitura su di esso, dopo aver iniziato l'attività principale .

Inoltre, la sua non è che arrivo ( ) si chiuderà l'applicazione, anche dopo definendolo processo per la vostra applicazione sarà ancora esiste, tutte le variabili statiche saranno ancora validi, naturalmente fino android decide di uccidere la vostra applicazione, che può accadere molto tempo dopo il vostro arrivo chiamare.

5Tamawy @

Calling finish() in qualsiasi attività passerà attraverso il suo ciclo di vita per distruggerla . Sicuramente distruggendo il frammento viene rimosso dalla pila posteriore .

Quindi, si deve chiamare finish(); metodo dalla vostra attività schizzi, poi avviare la MainActivity con l'intento, come segue

finish();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent); 

Yoi può anche risolvere questo problema l'override del metodo OnBackPressed con uno vuoto senza chiamare Super.onBackPressed ();