아주 간단한 작업으로 onKeyDown 및 onKeyUp을 구현했으며 볼륨 작게 키를 사용하여 이상한 동작을 발견했습니다. 여기 볼륨을 낮추면 onKeyDown이 늦게 호출됩니다 (볼륨 업이 시간 내에 호출하는 동안)
코드입니다 :12-15 17:43:22.215: W/Alon(751): Volume_up Down 74650325
12-15 17:43:22.265: W/Alon(751): Volume_up Up 74650374
12-15 17:43:22.705: W/Alon(751): Volume_up Down 74650818
12-15 17:43:22.765: W/Alon(751): Volume_up Up 74650878
12-15 17:43:23.566: W/Alon(751): Volume_up Down 74651675
12-15 17:43:23.656: W/Alon(751): Volume_up Up 74651768
12-15 17:43:24.107: W/Alon(751): Volume_up Down 74652222
12-15 17:43:24.177: W/Alon(751): Volume_up Up 74652284
볼륨 작게과 동일하지 않습니다 수행 :
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN))
{
B9=true;
Log.w("Alon", "Volume_down Down "+SystemClock.elapsedRealtime());
}
else if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP))
{
B10=true;
Log.w("Alon", "Volume_up Down "+SystemClock.elapsedRealtime());
}
else
return super.onKeyDown(keyCode, event);
return true;
}
public boolean onKeyUp (int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN))
{
B9=false;
Log.w("Alon", "Volume_down Up "+SystemClock.elapsedRealtime());
}
else if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP))
{
B10=false;
Log.w("Alon", "Volume_up Up "+SystemClock.elapsedRealtime());
}
else
return super.onKeyDown(keyCode, event);
return true;
}
클릭하면 볼륨 위로 최대한 빨리 인도적으로 수 놓아 올바른 결과를
12-15 17:44:13.139: W/Alon(751): Volume_down Down 74701252
12-15 17:44:13.139: W/Alon(751): Volume_down Up 74701253
12-15 17:44:13.840: W/Alon(751): Volume_down Down 74701950
12-15 17:44:13.840: W/Alon(751): Volume_down Up 74701950
12-15 17:44:14.751: W/Alon(751): Volume_down Down 74702863
12-15 17:44:14.761: W/Alon(751): Volume_down Up 74702865
12-15 17:44:15.431: W/Alon(751): Volume_down Down 74703546
12-15 17:44:15.431: W/Alon(751): Volume_down Up 74703547
12-15 17:44:16.673: W/Alon(751): Volume_down Down 74704785
12-15 17:44:16.673: W/Alon(751): Volume_down Up 74704785
두 대의 휴대 전화 (Nexus 4 및 Galaxy S)에서 동일한 결과가 테스트 및 획득되었습니다. 알려진 이슈 안드로이드에서? 내가 뭔가 잘못하고 있는거야?
가 대단히 감사합니다 내가이 메소드를 오버라이드 (override) 할 수 어쨌든 있나요 (? 난 당신이 스크린 샷이 아닌 특별한 재부팅을 유발 의미 생각)? – user1108591