我知道不应该使用system.exit(0)。 我已经阅读了大量的教程,并说明为什么不建议退出应用程序和finish()是一个更好的选择,但在极少数情况下使用这个脏的解决方法比我的主要问题是它会损害Android设备或使用设备的任何方面?
答案 0 :(得分:10)
简短回答:不。
长答案:不,它不会损害设备或设备的任何方面。它只是从内存中删除应用程序并清理所有使用的资源。如果您打开任何文件,它们可能会损坏,但文件系统不会。 Android应该释放您当时使用的所有资源(GPS,WiFi等),但它们可能处于未定义状态。比较System.exit()
对app崩溃的影响:这也不会影响你的设备。
答案 1 :(得分:1)
出于以下原因,不建议在应用程序的“main”方法之外的任何地方调用System.exit(0)
。
重用代码是一个障碍。
它使单元测试变得困难。例如,如果您的代码在某些测试执行某些错误处理时调用System.exit,则会在遇到System.exit(0)
时结束测试。
答案 2 :(得分:1)
它不会伤害您的设备。 唯一棘手的一点是,由于异步意图广播/接收架构,Android可以立即恢复您的应用程序。 假设您刚刚发布了应用程序的某项活动可以收听的内容。 然后你退出但是android会让你的应用程序恢复生机以处理广播。