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

조회수 541회

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 재등록 하는 과정이 추가되면 될 것 같네요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)