例如:

private final SensorEventListener mySensorEventListener = new SensorEventListener() {
   @Override
   public void onSensorChanged(SensorEvent se) {
      // pseudo code
      if (it is a shake event) {
         output some text;
      }
   }
}


我已经实现了SensorEventListener,但是直接一个接一个地检测到抖动事件。在检测到震动事件并输出一些文本后,我该怎么办以使侦听器休息一会儿?

最佳答案

通过将点击侦听器设置为null来禁用它,或者跟踪上一次震动的处理时间:

private final SensorEventListener mySensorEventListener = new SensorEventListener() {

   private Date lastShaked;

   @Override
   public void onSensorChanged(SensorEvent se) {
      // pseudo code
      if (lastShaked + some time < now) {
         lastShaked = now;
         output some text;
      }
   }
}

09-26 23:37