2012-06-29 9 views
9

So che system.exit (0) non deve essere utilizzato. Ho letto un sacco di tutorial, affermando anche perché non è raccomandato per uscire da applicazioni e finish() è un'alternativa migliore, ma in casi molto rari quando questa soluzione è sporca rispetto alla mia domanda principale è può danneggiare il dispositivo Android o qualsiasi aspetto del dispositivo se usato?System.exit() in android

risposta

9

breve risposta: No.

risposta lunga: No, non danneggiare il dispositivo o qualsiasi aspetto del dispositivo. Rimuove semplicemente l'app dalla memoria e ripulisce tutte le risorse utilizzate. Se i file sono aperti, possono essere danneggiati, ma il filesystem no. Android dovrebbe rilasciare tutte e tutte le risorse (GPS, WiFi, ecc.) Che hai in uso al momento, ma potrebbero trovarsi in uno stato indefinito. Confronta gli effetti di System.exit() con un arresto anomalo dell'app: questo non influisce sul tuo dispositivo.

1

Chiamare System.exit(0) in qualsiasi posizione al di fuori del metodo "principale" di un'applicazione non è raccomandato per i seguenti motivi.

  1. È un impedimento per riutilizzare il codice.

  2. Rende difficile il test dell'unità. Ad esempio, se il codice chiama System.exit quando alcuni test eseguono alcuni errori di gestione, terminerà il test incontrando System.exit(0).

+0

Voglio solo sapere, l'impatto che ha sul dispositivo o sulla sua memoria? – Altavista

+0

La risposta lo esprime chiaramente. Non danneggerà affatto il tuo dispositivo. È solo che rende difficile il collaudo della tua applicazione. –

1

Non danneggerà il dispositivo. L'unico problema è che Android potrebbe riportare in vita l'app immediatamente a causa dell'architettura di trasmissione/ricezione di intenti asincroni. Diciamo che hai appena parlato qualcosa che un'attività della tua app ascolta. E poi esci. Ma Android porterà la tua app in vita per gestire la trasmissione.

Problemi correlati