Лисенер должен запустить метод void go(int param), но если частота следования запусков менее секунды, то это должно считаться паразитным событием. И метод go не должен быть запущен.
Т.е. нужно реализовать метод void noiseFilter(int param), который бы запускал go(param) в случае, если частота генерации событий лисенера менее 1 Герца (не чаще 1 раза в секунду).
Помогите новичку.
P.S. Привязка ко времени не супер критична, так как 1Гц это огромный threshold, который перекрывает паразитную частоту в десятки раз.
Ответ
Статьи про таймер поищи, как вариант. Сам я таймер не использовал - но на мой взгляд решить можно так: Создать в классе флаг, реализовать функцию Drop, которая этот флаг меняет на false. Далее - когда запускается функция, она проверяет флаг, если он false - то можно работать, если true - то выполнение завершается. Если функция может работать, она ставит этот флаг в true и запускает TimerTask, который обнулит этот флаг через секунду с помощью метода Drop.
Комментариев нет:
Отправить комментарий