2011-01-11 85 views
1

如果我在Android 1.5上使用onBackPressed(),我的應用程序崩潰。如果在Android 1.5設備上運行,是否有可能停用此功能?向後兼容的onBackPressed

這裏的代碼並不是絕對必要的,而是一個真正的「很高興」,所以我想將它保留在較新的設備上,並將其放在較舊的設備上。

這可能嗎?

編輯:我想我找到了,只是老辦法:

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

return super.onKeyDown(keyCode, event); 
} 
+0

這的確是老手機的方法;)看起來像我至少使用的代碼:) – Nanne 2011-01-11 13:46:43

回答

3

你可以嘗試檢測運行時使用應用程序,並根據所準備不同分支的SDK版本。像:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if(Build.VERSION.SDK_INT==Build.VERSION_CODES.CUPCAKE) //if it's 1.5 
    { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) 
     {  // do something on back.   
      return true;  
     } 
    } 
    return super.onKeyDown(keyCode, event); 
}