我嘗試閱讀onsensorchanged每x秒,即時通訊使用countdowntimer但每秒鐘只有一個,當方法運行時間不,run方法,每x秒的加速度
private CountDownTimer delay;
@Override
public void onSensorChanged(SensorEvent event) {
if (board!=null && event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
float[] values = event.values;
// Movement
x =(int) Math.floor(values[0]);
y =(int) Math.floor(values[1]);
z =(int) Math.floor(values[2]);
delay = new countleft(START_DELAY, INTERVAL);
delay.start();
}
}
class countleft extends CountDownTimer{
public countleft(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}
@Override
public void onFinish() {
if(x>=3){
board.right();
}
else if(x<=(-3)){
board.left();
}
else if(y>=3){
board.up();
}
else if(y<=(-3)){
board.down();
}
START_DELAY = 2000;
}
需要諮詢
你想達到什麼樣產生的呢? – Blackbelt
首先,** onSensorChanged()**在輸入變爲可用時連續調用,可能速度很快。每次通話都會啓動一個新的倒數計時器,因此您可以很快地將數千個倒數計時器並行運行。正如黑帶所說,如果我們確切地知道你想要達到的目標,這將有所幫助。 –
即時嘗試運行方法'board.up()'和其他人只是每1秒, – user2375628