2012-04-12 100 views
4

我在我的应用程序中使用了代码从here,当我点击'取消'选项时,应用程序只是最小化,当我长按主页按钮并选择应用程序。它显示相同屏幕不是闪屏或应用程序开始的常用方式 - 所以我假设它只是把我带到主屏幕。我正在寻找一种可以完全关闭主要活动的方式。立刻退出整个应用程序

我曾尝试以下方法,它每一次崩溃:

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

你能否告诉我们在执行你的代码?我的意思是你试图调用'finish()'以及你调用它有什么错误? – WarrenFaith 2012-04-12 11:18:14

+0

为什么你的“完成()”失败? – 2012-04-12 11:19:30

+0

什么是你的logcaterror? – 2012-04-12 11:19:54

回答

10

不recommened但你仍然可以使用这个。 如果您需要退出应用程序,最好使用此解决方案。

根据我的最佳解决方案是完成您的应用程序中的每个活动,如下所示。

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

public static boolean isQuit = false; 

step2)点击一个按钮的事件使这个变量为真。

mainactivity.isQuit = true; 
    finish(); 

步骤3),并在你的应用程序的每个活动都有如下onrestart方法..

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

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

System.exit(0); 
+0

我使用GPS和互联网,因此它耗尽了大量的电池。我已经尝试了上面的代码它仍然在后台运行。 – 2012-04-12 11:56:07

+0

无线和GPS的消耗电池不间断,所以我建议禁用这两个设置,当你不使用它们...和你可以打开和关闭GPS编程 – user987760 2012-04-12 12:02:13

+0

如果System.exit(0);没有为你工作,我想你需要完成你的活动(this.finish();)然后System.exit(0);它总是为我工作... – user987760 2012-04-12 12:06:18