【问题标题】:When using System.exit() the app does't closes使用 System.exit() 时,应用程序不会关闭
【发布时间】:2014-08-18 08:48:52
【问题描述】:

我有一个应用程序,在主屏幕 onBackPressed() 我使用了 System.exit() 但我的应用程序实际上没有关闭它给了我 forceClose。

Home.Class

 @Override
    public void onBackPressed() {
        super.onBackPressed ();
        System.exit (0);
    }  

【问题讨论】:

  • 让安卓系统为你处理关闭应用?同时,您可以在此处更新您的 LogCat。
  • 那么Prolly,应该是在NDK中开发的。或与 Proguard 签约。只需清除凭据。 Android 框架强烈建议不要手动终止应用程序。 To Back My Comment
  • 这很好——但这并不意味着它不应该成为等式的一部分。如果我可以在注销或终止应用程序之间进行选择,我将始终选择终止应用程序 - 我不知道注销是否 100% 正确,但我知道终止应用程序可以。特别是对于原生应用程序,将帐户信息保存在静态变量中是一种常见模式。我想清除那个静电。
  • Anuj Here is a better explaination 您的原始问题以及为什么不应杀死应用程序。

标签: android systemexit


【解决方案1】:

试试这个代码

 @Override
public void onBackPressed() {
    super.onBackPressed();
      if (backpressvalue == 0) {
      Intent intent = new Intent(ControlScreen.this, MyCameras.class);
      finish();
      }
}

【讨论】:

    【解决方案2】:

    System.exit(0) 或 finish() 不会关闭应用程序,它会从当前活动退出并带您到最后一个活动。

    如果你想退出应用,试试这个可能会有帮助

    android.os.process.killProcess(android.os.process.myPid()); 
    

    更多信息请查看link

    【讨论】:

      【解决方案3】:

      建议您在开始新活动后完成当前活动

      例如:

      //MainActivity
      {
      //somecode there
      
      startActivity(new Intent(MainActivity.this,SecondActivity.class)); //start a new activity
      finish();// finish the activity so that when you press the backbutton it exits the app.
      }
      

      【讨论】:

      • @Override public void onBackPressed() { SearchJobs.SearchJobsAsync async = new SearchJobs.SearchJobsAsync (c, true); async.execute(); SearchJobsCustomList jobsCustomList = new SearchJobsCustomList (c, SearchJobs.arraylist);我确实在那里完成了,但它给了我 asynctask 的错误 bcos
      【解决方案4】:

      使用finish() 代替System.exit(0)

      【讨论】:

      • 可能是他需要的,但不做完全相同的事情 - 它关闭了 1 个活动,而不是应用程序。
      【解决方案5】:

      使用finish() 方法代替System.exit (0);

      【讨论】:

      • 当我使用finish()时,应用程序不会关闭,而是转到其他活动
      • 它将转到另一个活动,因为完成只会关闭当前活动而不是前一个活动
      • @Anuj:你想在按下后关闭应用程序
      • 我所做的是有 3 个活动。在其背面的第 3 个活动中,我已经完成了第 2 个活动,在其背面的第 2 个活动中,我调用了第一个。但是当我在第一个活动中使用完成时它回到第三个活动
      • @anuj: 在 firstactivity 上也调用了 finish() 方法
      猜你喜欢
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-06
      相关资源
      最近更新 更多