HardKey에 대해, 중복으로 눌렸을 때, 시간을 주려면 타이머를 사용하면 되는걸까요?

HardKey KeyCode : VoulmeUp 이 있고, 이 VoulmeUp 을 누르면 Popup이 하나 띄운다고 했을 때를 가정합니다.

VoulmeUp 을 누른 후 몇 초안에 같은 VoulmeUp HardKey를 눌렀을 때, 이벤트를 재호출 하지 않도록 막아버리려면 Timer를 사용하면 되는건가요? 어떤식으로 Timer를 사용하면 될까요? 약 5초 정도로 해서 키의 중복 이벤트 처리를 막으려고 합니다.

1답변

  • true일 경우에만(변수 이름에 따라 false일 수 있음) 버튼 핸들러를 실행 시키도록 flag 변수를 하나 두고 (초기값 true)

    1. 눌렀을 때, flag가 true이면 기존 핸들러 동작 실행. false면 실행하지 않는 분기 로직 구현
    2. true로 패스했을 경우, flag를 false로 변환.
    3. Timer에 schedule 메소드로 5000ms뒤에 flag를 true로 변환시키는 TimerTask를 등록.

    대충 이런 로직일거고, 만약 누를때마다 중복방지 딜레이를 초기화 하는 로직이 추가로 들어간다면 cancel() 후 schedule 재등록 하는 과정이 추가되면 될 것 같네요.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.