【问题标题】:exit entire app at once一次退出整个应用程序
【发布时间】:2012-04-24 17:30:43
【问题描述】:

我在我的应用程序中使用了来自here 的代码,当我点击“取消”选项时,应用程序只是最小化,当我长按主页按钮并选择应用程序时。它显示相同的屏幕而不是启动画面或应用程序启动的通常方式 - 所以我假设它只是将我带到主屏幕。我正在寻找一种可以完全关闭主要活动的方法。

我尝试了以下方法,每次都崩溃:

  1. finish();
  2. mainactivity.class.finish();
  3. 打开具有systemexit() 的意图
  4. setresult() 在另一个活动中。

【问题讨论】:

  • 您能向我们展示您执行的代码吗?我的意思是你在哪里尝试调用 finish() 以及调用它时遇到了什么错误?
  • 为什么你的“finish()”失败了?

标签: android application-lifecycle


【解决方案1】:

不推荐,但您仍然可以使用它。 如果您需要退出应用程序,最好使用此解决方案。

在我看来,最好的解决方案是完成您应用中的所有活动,如下所示。

step1) 在 mainactivity 中维护一个静态变量。

  public static boolean isQuit = false;

step2) 在按钮的单击事件中将此变量设为 true。

   mainactivity.isQuit = true;
   finish();

step3) 并且在您的应用程序的每个活动中都有如下 onrestart 方法..

  @Override
      protected void onRestart() {
         // TODO Auto-generated method stub
         super.onRestart();
        if(mainactivity.isQuit)
            finish();
    }

【讨论】:

    【解决方案2】:

    你可以杀死所有线程 asynctask 每个正在运行的活动:

    System.exit(0);
    

    【讨论】:

    • 我正在使用 gps 和互联网,因此它会消耗大量电池。我已经尝试了上面的代码,它仍然在后台运行。
    • wifi 和 gps 会不停地消耗电池电量,所以我建议您在不使用它们时从设置中禁用这两个...并且您可以通过编程方式打开和关闭 GPS
    • 如果 System.exit(0);对你不起作用,我想你需要通过 (this.finish();) 然后 System.exit(0); 完成你的活动它总是对我有用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多