CountDownTimer火了两次?

时间:2018-05-16 15:18:33

标签: android android-sensors countdowntimer

我有一种检测方法是幅度低于阈值。

public boolean amplitude_Detection(double ampA) {
    //Thresholds for amplitude acceleration
    double acceAmplitudeTH = 3.0;
    //Compare value with threshold
    if (ampA < acceAmplitudeTH) {

        return true;
    }
    return false;
}

接下来在我的onSensorChanged中,如果上面的代码返回true,我有if语句,我想暂停我的传感器5秒钟。 5秒后,再次恢复传感器。然而,在我的实验中,通过在同一位置将手机放在床上10次。计时器有时会被触发两次,有时只会触发一次。任何人都知道发生了什么?

    if(algo.amplitude_Detection(ampA))
    {
        //Pause sensors
        pauseSensor();
        Toast.makeText(getBaseContext(), "Pause ", Toast.LENGTH_SHORT).show();
        new CountDownTimer(5000, 1000) {
            public void onTick(long millisUntilFinished) {
                ((TextView)findViewById(R.id.timeCalc)).setText("Time Left: "+millisUntilFinished/1000+"\n"+ampA);
            }

            public void onFinish() {
                ((TextView)findViewById(R.id.timeCalc)).setText("Done");
                resumeSensor();
            }
        }.start();
    }
}
public void pauseSensor()
{
    senManager.unregisterListener(this, sensorAccelerometer);
}
public void resumeSensor() {senManager.registerListener(this, sensorAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);}

0 个答案:

没有答案