2012-06-29 2 views
9

Я знаю, что system.exit (0) не должен использоваться. Я прочитал много уроков, в которых также говорится, почему это не рекомендуется для выхода из приложений, а finish() - лучшая альтернатива, но в очень редком случае, когда этот грязный обходной путь используется, чем мой главный вопрос: может ли он повредить устройство Android или любой аспект устройства, если он используется?System.exit() в android

ответ

9

короткий ответ: Нет

длинный ответ: Нет, это не вредит устройству или любой аспект устройства. Он просто удаляет приложение из памяти и очищает все использованные ресурсы. Если у вас есть файлы открытые, они могут стать поврежденными, но файловая система не будет. Android должен выпускать все и любые ресурсы (GPS, WiFi и т. Д.), Которые вы используете в то время, но они могут находиться в неопределенном состоянии. Сравните эффекты System.exit() с крахом приложения: это также не повлияет на ваше устройство.

1

Вызов System.exit(0) в любом месте вне «основного» метода приложения не рекомендуется по следующим причинам.

  1. Это препятствие для повторного использования вашего кода.

  2. Он тщательно тестирует устройство. Например, если ваш код вызывает System.exit, когда некоторые тесты выполняют некоторую обработку ошибок, он завершит тест при встрече System.exit(0).

+0

Я просто хочу знать, какое влияние оно оказывает на устройство или его память? – Altavista

+0

Ответ на это ясно. Это не повредит вашему устройству. Дело в том, что он затрудняет модульное тестирование вашего приложения. –

1

Это не повредит вашему устройству. Единственный сложный момент в том, что Android может вернуть ваше приложение к жизни сразу из-за асинхронной архитектуры вещания/приема. Предположим, вы просто растеряли что-то, что слушает приложение. А потом выходите. Но андроид оживит ваше приложение, чтобы справиться с трансляцией.

Смежные вопросы