0
  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

助けてください :)

4

1 に答える 1

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()、タイマー中に何かが発生したかどうかを確認できます。

于 2016-05-31T19:22:00.427 に答える