onKeyDown()的返回值问题

项目中,物理键事件的功能是在onKeyDown()方法中实现的,其boolean型的返回值需要注意,注释中说:

Return true to prevent this event from being propagated further, or false to indicate that

you have not handled this event and it should continue to be propagated. 

我解释一下上面的英文:

返回true是为了阻止这个事件被传播的更远,或者false来表明你并没有控制这个点击事件,它可以继续传播下去


因为每个物理键的动作都是有其对应的值的,这个在文末再贴出。上文的‘further’,就是指各动作在值上的位置关系。比如,我如果在KeyEvent.KEYCODE_BACK(其code为4)的情况下返回一个true,那么4之后的code所对应的操作,如82的KEYCODE_MENU就不具备响应能力了。保险起见,通常我们都是设返回值为false的。



关于安卓的后退响应事件,详细可以看这里Android中的后退键响应事件

[java]  view plain copy
  1. public static final int KEYCODE_UNKNOWN         = 0;  
  2. public static final int KEYCODE_SOFT_LEFT       = 1;  
  3. public static final int KEYCODE_SOFT_RIGHT      = 2;  
  4. public static final int KEYCODE_HOME            = 3;  
  5. public static final int KEYCODE_BACK            = 4;  
  6. public static final int KEYCODE_CALL            = 5;  
  7. public static final int KEYCODE_ENDCALL         = 6;  
  8. public static final int KEYCODE_0               = 7;  
  9. public static final int KEYCODE_1               = 8;  
  10. public static final int KEYCODE_2               = 9;  
  11. public static final int KEYCODE_3               = 10;  
  12. public static final int KEYCODE_4               = 11;  
  13. public static final int KEYCODE_5               = 12;  
  14. public static final int KEYCODE_6               = 13;  
  15. public static final int KEYCODE_7               = 14;  
  16. public static final int KEYCODE_8               = 15;  
  17. public static final int KEYCODE_9               = 16;  
  18. public static final int KEYCODE_STAR            = 17;  
  19. public static final int KEYCODE_POUND           = 18;  
  20. public static final int KEYCODE_DPAD_UP         = 19;  
  21. public static final int KEYCODE_DPAD_DOWN       = 20;  
  22. public static final int KEYCODE_DPAD_LEFT       = 21;  
  23. public static final int KEYCODE_DPAD_RIGHT      = 22;  
  24. public static final int KEYCODE_DPAD_CENTER     = 23;  
  25. public static final int KEYCODE_VOLUME_UP       = 24;  
  26. public static final int KEYCODE_VOLUME_DOWN     = 25;  
  27. public static final int KEYCODE_POWER           = 26;  
  28. public static final int KEYCODE_CAMERA          = 27;  
  29. public static final int KEYCODE_CLEAR           = 28;  
  30. public static final int KEYCODE_A               = 29;  
  31. public static final int KEYCODE_B               = 30;  
  32. public static final int KEYCODE_C               = 31;  
  33. public static final int KEYCODE_D               = 32;  
  34. public static final int KEYCODE_E               = 33;  
  35. public static final int KEYCODE_F               = 34;  
  36. public static final int KEYCODE_G               = 35;  
  37. public static final int KEYCODE_H               = 36;  
  38. public static final int KEYCODE_I               = 37;  
  39. public static final int KEYCODE_J               = 38;  
  40. public static final int KEYCODE_K               = 39;  
  41. public static final int KEYCODE_L               = 40;  
  42. public static final int KEYCODE_M               = 41;  
  43. public static final int KEYCODE_N               = 42;  
  44. public static final int KEYCODE_O               = 43;  
  45. public static final int KEYCODE_P               = 44;  
  46. public static final int KEYCODE_Q               = 45;  
  47. public static final int KEYCODE_R               = 46;  
  48. public static final int KEYCODE_S               = 47;  
  49. public static final int KEYCODE_T               = 48;  
  50. public static final int KEYCODE_U               = 49;  
  51. public static final int KEYCODE_V               = 50;  
  52. public static final int KEYCODE_W               = 51;  
  53. public static final int KEYCODE_X               = 52;  
  54. public static final int KEYCODE_Y               = 53;  
  55. public static final int KEYCODE_Z               = 54;  
  56. public static final int KEYCODE_COMMA           = 55;  
  57. public static final int KEYCODE_PERIOD          = 56;  
  58. public static final int KEYCODE_ALT_LEFT        = 57;  
  59. public static final int KEYCODE_ALT_RIGHT       = 58;  
  60. public static final int KEYCODE_SHIFT_LEFT      = 59;  
  61. public static final int KEYCODE_SHIFT_RIGHT     = 60;  
  62. public static final int KEYCODE_TAB             = 61;  
  63. public static final int KEYCODE_SPACE           = 62;  
  64. public static final int KEYCODE_SYM             = 63;  
  65. public static final int KEYCODE_EXPLORER        = 64;  
  66. public static final int KEYCODE_ENVELOPE        = 65;  
  67. public static final int KEYCODE_ENTER           = 66;  
  68. public static final int KEYCODE_DEL             = 67;  
  69. public static final int KEYCODE_GRAVE           = 68;  
  70. public static final int KEYCODE_MINUS           = 69;  
  71. public static final int KEYCODE_EQUALS          = 70;  
  72. public static final int KEYCODE_LEFT_BRACKET    = 71;  
  73. public static final int KEYCODE_RIGHT_BRACKET   = 72;  
  74. public static final int KEYCODE_BACKSLASH       = 73;  
  75. public static final int KEYCODE_SEMICOLON       = 74;  
  76. public static final int KEYCODE_APOSTROPHE      = 75;  
  77. public static final int KEYCODE_SLASH           = 76;  
  78. public static final int KEYCODE_AT              = 77;  
  79. public static final int KEYCODE_NUM             = 78;  
  80. public static final int KEYCODE_HEADSETHOOK     = 79;  
  81. public static final int KEYCODE_FOCUS           = 80;   // *Camera* focus  
  82. public static final int KEYCODE_PLUS            = 81;  
  83. public static final int KEYCODE_MENU            = 82;  
  84. public static final int KEYCODE_NOTIFICATION    = 83;  
  85. public static final int KEYCODE_SEARCH          = 84;  
  86. public static final int KEYCODE_MEDIA_PLAY_PAUSE= 85;  
  87. public static final int KEYCODE_MEDIA_STOP      = 86;  
  88. public static final int KEYCODE_MEDIA_NEXT      = 87;  
  89. public static final int KEYCODE_MEDIA_PREVIOUS  = 88;  
  90. public static final int KEYCODE_MEDIA_REWIND    = 89;  
  91. public static final int KEYCODE_MEDIA_FAST_FORWARD = 90;  
  92. public static final int KEYCODE_MUTE            = 91;  
  93. public static final int KEYCODE_PAGE_UP         = 92;  
  94. public static final int KEYCODE_PAGE_DOWN       = 93;  
  95. public static final int KEYCODE_PICTSYMBOLS     = 94;    
  96. public static final int KEYCODE_SWITCH_CHARSET  = 95;    

你可能感兴趣的:(onKeyDown()的返回值问题)