使用sensorEventListener时如何检测IF循环的结束

时间:2015-03-28 13:52:15

标签: android loops sensor break

我从手机获得线性加速并出现问题。 如果加速度高于10米/秒,我想得到i = i + 1但是只增加1个ONCE而不是所有时间读数都高于10米/秒。因此,考虑获得价值再次低于10而不是向i增加+1的时刻。任何人都可以帮助我吗?

现在,我这样做,但效果不好。

 @Override
public void onSensorChanged(SensorEvent event) {

    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];
    //odczytWyswX.setText(Float.toString(x));
    //odczytWyswY.setText(Float.toString(y));
    // odczytWyswZ.setText(Float.toString(z));

    if (event.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) {
        gravSensorVals = lowPass(event.values.clone(), gravSensorVals);
        grav[0] = event.values[0];
        grav[1] = event.values[1];
        grav[2] = event.values[2];
    }

    odczytWyswZ.setText(Float.toString(grav[2]));
       wychwytywanieGornegoTapniecia();
}



 void wychwytywanieGornegoTapniecia(){
    if(grav[2]>10){   i++

     }

1 个答案:

答案 0 :(得分:0)

尝试在逻辑中使用简单的布尔值。

private boolean updateValue; // A field on the Class

    if (grav[2] > 10 && updateValue) {
        i++;
        updateValue = false;
    }

    if (grav[2] < 10) {
        updateValue = true;
    }