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
            }
        }
    };


这是我的可运行计时器,不确定是否可以在这里找到解决方案

我想让我的Sphero在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


请帮忙 :)

最佳答案

尝试使用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()中对其进行测试,以查看计时器是否发生了任何事情。

关于java - 如果5秒钟内没有任何 react ,如何在android中进行操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37536610/

10-10 11:58