java onSensorChanged,每10秒比较一次传感器数据
我的代码:
@Override
public void onSensorChanged(SensorEvent event) {
float f1 = event.values[0];
float f2 = event.values[1];
float f3 = event.values[2];
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(context,"10 second",Toast.LENGTH_SHORT).show();
new Handler().postDelayed(this, 10000);
}
}, 10000);
this.LastX = event.values[0];
this.LastY = event.values[1];
this.LastZ = event.values[2];
float f4 = Math.abs(this.LastX - f1);
float f5 = Math.abs(this.LastY - f2);
float f6 = Math.abs(this.LastZ - f3);
if(f4<0.003 && f5<0.003 && f6<0.003){
MainActivity.LockState = true;
// Toast.makeText(context,"Düz zemin",Toast.LENGTH_LONG).show();
}
}
我试图每10秒比较一次传感器数据,但postDelayed功能只在第一次起作用。在这之后,祝酒词是垃圾邮件
# 1 楼答案
您只需从SensorEvent获取时间戳,并检查上一个时间戳和当前时间戳之间是否有10秒的差异。 例如: