我需要一些简单的逻辑来解决这个问题。所以这就是我想要的:
气压计范围的值为etc 31,xxxx - 33,xxxx。因此,如果气压计值超出范围31,xxxx - 33,xxxx,则倒数计时器开始计数。
但如果值再次返回内部,则countdowntimer将为onPause()。当值超出该范围时,倒数计时器将重新开始。等等。
因此,如果计时器是onFinish(),系统会给出一些警告,但如果没有完成,系统将不会给出任何响应。
这是我的代码:
public SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float pressure_value = 0.0f;
float height = 0.0f;
if (Sensor.TYPE_PRESSURE == event.sensor.getType())
{
pressure_value = event.values[0];
height = SensorManager.getAltitude(SensorManager.PRESSURE_STANDARD_ATMOSPHERE, pressure_value);
}
value = String.valueOf(height);
valueOftxtBaro = Float.parseFloat(value);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
答案 0 :(得分:0)
首先声明时间的全局变量和Timer,例如30secs。
private int time = 30000;
private CountDownTimer cdt;
将其乘以1000以使其为30000.现在,在传感器内部启动计时器时,它会达到您的范围。
cdt = new CountDownTimer(time, 1000, getActivity().getApplicationContext()) {
@Override
public void onTick(long millisUntilFinished) {
super.onTick(millisUntilFinished);
time = millisUntilFinished;
}
@Override
public void onFinish() {
super.onFinish();
}
}.start();
当它没有得到范围时
if(cdt != null){
cdt.cancel();
}
当计时器用完时,你可以用onFinish方法做任何你想做的事。