测验程序计时器问题

时间:2014-06-26 07:33:53

标签: android

我正在为Android创建一个测验应用程序,我正在使用计时器。基于计时器,问题将转移到下一个。有20个问题。我给每个问题6秒的时间。他们应该在6秒内回答,否则问题将转移到下一个问题。如果他们在四秒内回答意味着剩余的2秒将被添加到下一个问题。这样下一个问题将有8秒的时间。因此,我必须在下一个问题中添加剩余的秒数直到结束。我使用下面的代码,但它只启动和停止计时器。

    private Runnable updateTimerThread = new Runnable() {
    public void run() {
        timeInMilliseconds = SystemClock.uptimeMillis() - startTime;
        updatedTime = timeSwapBuff + timeInMilliseconds;
        int secs = (int) (updatedTime / 1000);
        int mins = secs / 60;
        secs = secs % 60;
        mTimerText.setText("" + mins + ":" + String.format("%02d", secs));
        customHandler.postDelayed(this, 0);
        }
};

public void playClock() {
    startTime = SystemClock.uptimeMillis();
    customHandler.postDelayed(updateTimerThread, 0);
    if (SystemClock.elapsedRealtime()==6) {
        getQuestion();   //Here i call my question
    }
}


public void resumeClock() {
    timeSwapBuff += timeInMilliseconds;
    customHandler.removeCallbacks(updateTimerThread);
}

1 个答案:

答案 0 :(得分:0)

你必须使用CountDownTimer尝试以下方法startTimmer(6)当timmer complate有方法finishQuizTime();被调用时(在该方法中设置下一个问题细节)。

当用户选择接听电话finishQuizTime();&使用CountDownTimer

停止mCountDown.cancel();
/**
     * timer for quiz question
     * */
    public void startTimmer(int currentQueSec) {

        Log.e("start timmer for ", "--->" + currentQueSec);

        mCountDown = new CountDownTimer(currentQueSec, 1000) {

            @Override
            public void onFinish() {

                /**
                 * stop timmer
                 * */

                finishQuizTime();


                Log.e("time is finish", "time is finish");
            }

            @Override
            public void onTick(long millisUntilFinished) {

                queLastTime = millisUntilFinished / 1000;

            }
        }.start();
    }