我正在开发一个应用程序,它使用音量按钮点击来触发一个动作。如果用户在给定的时间内点击音量按钮5次,那么一个功能将被触发。现在我需要一个代码来检查用户是否在给定时间内点击了音量按钮5次。时间应该是毫秒
thtygnil1#
下面的代码可能是解决这个问题的一个好方法。它可能不是最好的,但是只要它工作,它就是好的
int timesPressed = 0; boolean timesUp = false; long millisInFuture = 5000; //ms until countdown stops long countDownInterval = 50; //the rate at which countdown ticks (here, once every 50 ms) public CountDownTimer countDownTimer = new CountDownTimer(millisInFuture, countDownInterval) { @Override public void onTick(long millisUntilFinished) { return; } @Override public void onFinish() { timesUp = true; timesPressed = 0; } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_VOLUME_UP){ timesPressed++; countDownTimer.start(); if (!timesUp && timesPressed == 5) { countDownTimer.cancel(); //stops timer timesUp = false; timesPressed = 0; doStuff(); //execute your function } } return true; }
1条答案
按热度按时间thtygnil1#
下面的代码可能是解决这个问题的一个好方法。它可能不是最好的,但是只要它工作,它就是好的