我搜索过并搜索过,并没有发现什么能够完全解释发生了什么。基本上onKeydown和onKeyUp事件都会触发两次。在Android 4.1中我没有任何问题但是这个客户升级到Android 4.2.2并且问题开始了。我在文档中找不到任何指示更改的内容,但我发现这是Android 2.x中的一个问题
public boolean onKeyDown(int keyCode, KeyEvent event) {
char pressedKey = (char) event.getUnicodeChar();
String TAG = null;
if (event != null && (event.getAction() == KeyEvent.ACTION_DOWN))
{
Log.d(TAG, "onKeyDown - keyCode = " + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
{
if(currentOrderLineDetailCollection.size()>0)
{
DisplayRemoveAlert(this);
}
}
default:
char stkeyCode = pressedKey;
UPCNum += stkeyCode;
}
}
if (UPCNum.length() >= 12) {
Bundle extras=getIntent().getExtras();
Intent intent1 = new Intent(OrderDetail_Activity.this, HandheldScanner_Activity.class);
intent1.putExtra("UPCNum", UPCNum.trim());
startActivity(intent1);
UPCNum="";
}
return super.onKeyDown(keyCode, event);
}