【问题标题】:System.exit() in androidandroid 中的 System.exit()
【发布时间】:2012-06-29 07:02:46
【问题描述】:

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

【问题讨论】:

    标签: android system.exit


    【解决方案1】:

    简短回答:不。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我只想知道,它对设备或内存的影响?
      • 答案清楚地传达了这一点。它根本不会损害您的设备。只是它使您的应用程序的单元测试变得困难。
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-05
        • 1970-01-01
        • 1970-01-01
        • 2011-07-21
        • 1970-01-01
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        相关资源
        最近更新 更多