9

我知道不应该使用 system.exit(0) 。我已经阅读了很多教程,并说明了为什么不建议将它用于退出应用程序,而 finish() 是一个更好的选择,但在极少数情况下,当使用这种肮脏的解决方法时,我的主要问题是 它是否会损害 android 设备或任何方面如果使用设备?

4

3 回答 3

10

简短的回答:不。

长答案:不,它不会损害设备或设备的任何方面。它只是从内存中删除应用程序并清理所有使用的资源。如果您打开了任何文件,它们可能会损坏,但文件系统不会。Android 应该释放您当时正在使用的所有资源(GPS、WiFi 等),但它们可能处于未定义状态。比较System.exit()应用程序崩溃的影响:这也不会影响您的设备。

于 2012-06-29T07:17:00.673 回答
1

System.exit(0)由于以下原因,不建议在应用程序的“main”方法之外调用任何地方。

  1. 这是重用代码的障碍。

  2. 它使单元测试变得困难。例如,如果您的代码在某些测试执行某些错误处理时调用 System.exit,它将在遇到System.exit(0).

于 2012-06-29T07:09:11.777 回答
1

它不会损害您的设备。唯一棘手的一点是,由于异步意图广播/接收架构,Android 可以立即让您的应用恢复活力。假设您刚刚广播了您的应用程序的活动正在收听的内容。然后你退出。但是 android 会让你的应用恢复活力来处理广播。

于 2012-06-29T07:22:23.137 回答