2011-05-31 218 views
3

我有一個啓動畫面,導致進入主導航屏幕,其中有動畫來介紹按鈕。我想要的是當按下後退按鈕時關閉應用程序。它當前會在調用返回按鈕時重新加載活動(主) - 這是爲什麼?後退按鈕關閉應用程序

我在論壇上看了一下,一種方法是使用finish()方法。我嘗試在main.java類中執行此操作,如下所示:

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if(keyCode == KeyEvent.KEYCODE_BACK) 
    {  
     this.finish(); 

     return true; 
    } 
    return false; 
} 

但上面沒有這樣做 - 我在做什麼錯?

乾杯

UPDATE

乾杯所有這些工程的迅速答覆,但沒有。但我想我可能知道爲什麼 - 我的類只實現onCreate()方法,而沒有其他方法。難道這就是爲什麼所有其他方法都失敗了嗎?

UPDATE

嗨 - 我來分類的,但我不這樣做,在這一刻,明白爲什麼這個工程&其他方法都不奏效:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) 
    { 
     // do something on back. 
     moveTaskToBack(true); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

那麼,爲什麼將這項工作與ekawas演示的onBackPressed()中使用的finish()方法不會?

回答

1

onBackPressed可能在您的onKeyDown之前獲得keydown事件。

1

確保您撥打的閃屏活動finish調用startActivity後,再試試這個在您的onKeyDown

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){ 
      finish(); 
     } 

     return super.onKeyDown(keyCode, event); 
    } 
1
@overide 
public void onBackPressed() { 
    finish(); 
    return; 
} 

做,在你的活動,而不是監聽按鍵。

相關問題