Как заставить действие произойти в Android, если ничего не произошло в течение 5 секунд?
final Handler handler = new Handler();
final Runnable timer = new Runnable() {
@Override
public void run() {
// user too late: increment miss counter
if (++secondmisses >= MISS_LIMIT) {
//TODO miss limit reached
finish(); // close this activity
}
}
};
Это мой работающий таймер, не уверен, что смогу найти решение здесь
Я хочу, чтобы мой сферо обнаружил столкновение за 5 секунд
если (получил столкновение за 5 секунд) двигаться вверх, если говорят, что столкновения нет, двигаться вниз
Это мой код ниже
Я не уверен, что еще я могу сделать это
mRobot.drive(0.0f, ROBOT_VELOCITY);
handler.removeCallbacks(timer);
handler.postDelayed(timer, ONE_SECOND);
this.checkcollision(v, 1); // if there is no collision
this.checkcollisoon(v,2); //if there is a collision
Пожалуйста помоги:)
1 ответ
Решение
Попробуй с CountDownTimer
, Что-то вроде этого:
long duration = 12345;
long ticksInterval = 1000; // 1 second in millis
new CountDownTimer(duration, ticksInterval){
public void onTick(long remaining) {
// Do something each ticksInterval millis
}
public void onFinish() {
// Do something after duration millis
}
}.start();
Когда что-то происходит в вашем приложении, вы можете установить не статический логический класс и протестировать его в onFinish()
чтобы увидеть, если что-то произошло во время таймера.