2010-07-09 101 views
2

我在我的活動中實現了onBackPressed()方法。對於我的應用程序來說,我有這個功能是至關重要的。但是,控件永遠不會進入此功能。當我按下後退按鈕時,它會進入onPause()。onBackPressed()沒有被執行

但問題是我不能在onPause()中有相同的邏輯,因爲當我調用另一個活動時,當前活動調用onPause(),我不希望它執行onBackPressed() 。

請幫忙。

public void onBackPresed(){ 

    Log.d(TAG,"inside onBackPressed()"); 
     if(STATE == PREVIEW){ 

     } 
} 
+0

請將您的代碼發佈到覆蓋OnBackPressed方法的地方。你是否使用正確的方法頭(params,返回值)作爲你想重寫的原始頭? – 2010-07-09 09:31:42

+0

上面的代碼請檢查 – Namratha 2010-07-09 09:35:53

+0

請嘗試稍微裁剪你的代碼,我們不需要看到它的全部內容,就像Mathias所說的那樣,只是覆蓋點。如果你想讓人們回答你的問題,你還應該花一些時間,並標記你已經接受的其他問題的一些答案,這樣做是很好的方式。你在運行什麼版本的Android? – 2010-07-09 09:51:42

回答

12
public void onBackPresed(){ 

您鍵入一個 'S',應該onBackPre SS ED()

+11

這就是爲什麼你應該總是使用@Override。 :) – hackbod 2010-07-10 02:21:33

+0

是啊!這是正確的:) – Namratha 2010-07-10 14:36:34

+0

我不明白,當你使用's'時,Eclipse是否給你一個警告? – 2012-09-20 21:24:41

5

這是我要做的事。

public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) { 
    Log.d(TAG,"Back key pressed"); 
    return true; 
} 
return super.onKeyDown(keyCode, event); 
} 
+0

哦。這比onBackPressed()更好。一種方法比另一種有優勢嗎? 我認爲這種方法的一個優點是,當你在聽按鍵時,你可以使用開關盒並且也包括背按鍵。 – Namratha 2010-07-10 14:35:46

+1

+1這適用於所有API級別。 'onBackPressed()'適用於API Level 5或更高級別(即Android 2.0+) – Felix 2010-11-07 16:45:31

3

剛擡起頭,在Android開發者博客上公佈有關覆蓋背襯和處理向後兼容性here