我想为Android编程游戏。
游戏原则:用户应该有很短的时间来选择正确的答案。
我的问题是输入(选择答案)和时间(倒计时)之间的组合。我试图运行一个线程,但线程不可停止。因此,用户给出答案,下一个活动将显示,一段时间后(当“计时器”变为0时)活动将再次显示。
Thread, Handler, CountDownTimer
吗?答案 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