我尝试在800毫秒的延迟后添加“双重检查”来检查方向,以便用户有时间在触发该方法之前纠正方向。不幸的是,我无法控制onSensorChanged被调用的频率,以便添加一个带有800毫秒延迟的线程,该线程将双重检查方向以防止无意中更改方向。
我的代码如下:
public SensorEventListener accelerometerListener = new SensorEventListener(){
@Override
public void onSensorChanged(SensorEvent event) {
float z_value = event.values[2];
if (z_value < 0) {
//the device is now upside-down
try {
Thread.sleep(800);
//this if statement is never called correctly because
// onSensorChanged is not called again.
if (z_value < 0) {
toggleMethod();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我的问题: 在onSensorChanged
方法内部是否有一种方法可以延迟调用onSensorChanged
,以进行双重检查?