2012-04-12 98 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