如何设置Android游戏的计时器?

时间:2014-02-20 03:50:43

标签: android countdowntimer android-handler

我想为Android编程游戏。

游戏原则:用户应该有很短的时间来选择正确的答案。

我的问题是输入(选择答案)和时间(倒计时)之间的组合。我试图运行一个线程,但线程不可停止。因此,用户给出答案,下一个活动将显示,一段时间后(当“计时器”变为0时)活动将再次显示。

  • 我怎样才能以正确的方式实现这一点?
  • 我应该使用Thread, Handler, CountDownTimer吗?

3 个答案:

答案 0 :(得分:2)

你可以在init:

上使用它来保持一个正在运行的计时器
Timer updateTimer = new Timer("update");
updateTimer.scheduleAtFixedRate(new TimerTask() {
    public void run() {
    updateGUI();
        }
    }, 0, 1000);
long startTime = System.currentTimeMillis();

然后在一个主题中:

//Clock update
currentTime = System.currentTimeMillis() - startTime;
SimpleDateFormat sdf = new SimpleDateFormat("mm:ss");
clock.setText(sdf.format(currentTime));
clock.invalidate();

您可以随意在内部或外部使用布尔值来停止线程吗?

答案 1 :(得分:0)

好的,我不知道要使用的特定库,我自己没有做任何线程编程,但我会把程序看作是状态机。我希望它有所帮助:/

设置boolean userHasAnswered = false

设置专门的监听器(例如某个按钮的触摸监听器)以获得答案。 如果侦听器从用户那里获得适当的响应,请设置userHasAnswered = true

当问题加载时,启动倒计时的线程。

如果用户在时间到零时未能给出ans,请拨打loadNextQuestion()

在您的帖子中,定期检查每隔几个单位时间以查看是否userHasAnswered == true,如果是,则调用updateScore()loadNextQuestion()

答案 2 :(得分:0)

您可能需要查看alarm manager