2012-06-29 13 views
9

Ich weiß system.exit (0) sollte nicht verwendet werden. Ich habe viele Tutorials gelesen, warum es nicht für die Beendigung von Anwendungen empfohlen wird und Finish() ist eine bessere Alternative, aber in sehr seltenen Fällen, wenn diese schmutzige Workaround verwendet wird als meine Hauptfrage kann es das Android-Gerät beschädigen jeder Aspekt des Geräts, wenn es benutzt wird?System.exit() in android

Antwort

9

kurze Antwort: Nein

lange Antwort: Nein, es das Gerät nicht schaden oder einen Teil der Vorrichtung. Es entfernt nur die App aus dem Speicher und räumt alle verwendeten Ressourcen auf. Wenn Dateien geöffnet sind, können sie beschädigt werden, das Dateisystem jedoch nicht. Android sollte alle Ressourcen (GPS, WLAN usw.) freigeben, die Sie gerade verwenden, aber sie könnten sich in einem undefinierten Zustand befinden. Vergleichen Sie die Auswirkungen von System.exit() mit einem App-Absturz: das würde sich auch nicht auf Ihr Gerät auswirken.

1

Das Anrufen von System.exit(0) außerhalb der "Haupt" -Methode einer Anwendung wird aus den folgenden Gründen nicht empfohlen.

  1. Es ist ein Hindernis für die Wiederverwendung Ihres Codes.

  2. Es macht Unit-Tests hart. Wenn Ihr Code beispielsweise System.exit aufruft, wenn einige Tests eine Fehlerbehandlung durchführen, wird der Test bei einer Begegnung mit System.exit(0) beendet.

+0

Ich will nur wissen, welche Auswirkungen es auf das Gerät oder seinen Speicher hat? – Altavista

+0

Die Antwort vermittelt das deutlich. Es wird Ihr Gerät überhaupt nicht beschädigen. Es ist nur so, dass es ein einheitliches Testen Ihrer Anwendung schwierig macht. –

1

Es wird Ihr Gerät nicht beschädigen. Das einzige knifflige Bit ist, dass Android Ihre App dank der asynchronen Sende-/Empfangsarchitektur sofort wieder zum Leben erwecken kann. Angenommen, Sie haben gerade etwas geknackt, auf das eine Aktivität Ihrer App zu hören ist. Und dann verlassen Sie. Aber Android wird Ihre App wieder zum Leben erwecken, um mit der Übertragung fertig zu werden.