2014-06-29 90 views
2

我想通過單擊退出按鈕退出整個應用程序。其實我正在使用退出按鈕而不是註銷。所以每當用戶點擊它,它應該完成完整的應用程序,但它只銷毀最後一次運行的活動。我現在應該怎麼做? 我在我的代碼中使用這種方法,任何幫助將不勝感激,在此先感謝。從Android應用程序完全退出

  public void exit(View v){ 
       finish(); 
       System.exit(0); 
      } 

我也使用了下面的代碼,但它只會殺死上次運行的活動,而不是完整的應用程序。

   public void exit(View v){ 
       android.os.Process.killProcess(android.os.Process.myPid()); 
       System.exit(1); 
      } 
+1

,除非你有一個很好的理由你不應該這樣做。這是反Android,惹惱用戶,並沒有幫助性能。全面的壞主意。 – Simon

+0

是的,我有理由..我知道..你是對的,但沒有工作的方式,它應該工作:( – SparrOw

回答

4

有一種方法可以完全殺死你的應用程序。最小化它,Android系統將在必要時自動關閉它。要做到這一點,

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_HOME); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

此外,這太問題可以幫助:How to close android app completely

+0

thnx。 。更好.. :) – SparrOw

2

如果你真的,真的要,這樣做:

public void exit(View v){ 
    finish(); 
    android.os.Process.killProcess(android.os.Process.myPid()); 
} 
+0

漢斯它帶我回到以前的活動..我的意思是這是隻銷燬一個活動,而不是完整的應用程序:( – SparrOw

+0

啊,現在我看到了你想要的東西,即使你的應用程序退出後,活動回棧也包含了你的舊活動如果你退出你的最高活動甚至殺了應用程序,以前的活動將被重新打開。你需要實現這樣的東西:http://stackoverflow.com/a/19109602/414285 –

+0

漢斯其不工作對我.. :(不知道爲什麼可能會有一些問題 – SparrOw

-2

我認爲解決方案建議由漢斯·克拉茨是不是最好的,因爲它可能會在問題導致,因爲ressources不會首先定案。相反,你應該使用下面的代碼安全地殺死你的應用程序:

public void exit(View v){ 
    System.runFinalizersOnExit(true); 
    System.exit(0); 
} 

但仔細想想了兩次,因爲它是不一樣的Android應用程序通常工作。

+0

是的,我知道,但時間太短這就是爲什麼我在想這個......這個代碼和漢斯做的一樣...只銷毀上次運行的活動......應用程序仍在運行:( – SparrOw

+0

好吧,現在我明白你在找什麼。請看下面的帖子中接受的anser的解釋:http://stackoverflow.com/questions/2092951/how-to-close-android-application – Robin

+0

好吧,我會檢查這一個現在.. :) – SparrOw