2012-07-13 71 views
0

我想在用戶觸摸Android設備的主頁按鈕時銷燬我的應用程序,並在用戶觸摸Android的「後退」按鈕時開始MainActivity。 有沒有人知道如何做到這一點?如何在用戶觸摸Android設備的主頁按鈕或後退按鈕時銷燬應用程序?

+0

可能重複:http://stackoverflow.com/questions/4131585/how-to-destroy-an-activity-in-android – 2012-07-13 13:00:09

+0

看看這個【答案】(HTTP://計算器的.com /一個/1212908分之4132571)。 – 2012-07-13 13:00:30

回答

2

對於近處的應用上回

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (event.getAction() == KeyEvent.ACTION_DOWN) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK : 
      finish(); 

      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

所以要編碼的onStop方法你不能點擊主頁按鈕的事件。

@Override 
    protected void onStop() { 
     finish(); 
     super.onStop(); 
    } 
+0

非常感謝!我使用了第二種解決方案,它的工作原理是使用onPause()方法,我甚至不必使用第一個解決方案^^。 – Shannon 2012-07-17 07:22:49

1
System.exit(0) 

但是最好不要使用它。 Android不是爲此設計的。

Close application and launch home screen on Android

+1

正如你說,我認爲這不是最好的解決辦法,但感謝您的幫助^^ – Shannon 2012-07-13 13:13:58

+0

@Shannon它是不是最好的解決方案,因爲你所想要做的是最好的做法之外的平臺... – FoamyGuy 2012-07-13 13:17:12

0

你可以通過調用finish()關閉一個Activity,但你必須這樣做,每個Activity是開放的。要在按HOME按鈕時發生這種情況,您必須註冊KeyEvent。我不太清楚如何做到這一點,但你可以找到documentation here

0

通話finish()onStop()方法。或者在清單中使用android:noHistory="true"

1

你可以通過調用finish()和finishActivity()方法來做到這一點。查看API指南Shutting down an Activity的詳細信息。從哪裏調用這些方法取決於應用程序的實現方式,但我想你可以通過監聽KeyEvent和過濾Home按鍵事件來完成當前焦點活動。

但是你需要考慮的是,一旦你已經殺了你的活動按後退按鈕不會讓你回到你的應用程序的活動,因爲殺死活動將消滅他們的內存堆棧。

還檢查了在Android開發者網站給出的Activity life cycle diagram和詳細說明。 enter image description here

+0

謝謝,我找到了解決方案! – Shannon 2012-07-17 07:24:40

相關問題