安卓小游戏 - 延迟代码



第一次在android工作室编程,并试图制作认知测试Digit Span的最小可行产品。这个想法是每 X 秒显示一个数字,当所有数字都显示完毕后,您需要按出现的顺序键入正确的数字。如果你是对的,下一次运行的数字量会增加。

我遇到的问题是我想对弹出的数字施加延迟。我尝试过使用处理程序,但没有成功,并且没有想法。

下面是一个未按预期工作的代码的手工小示例:

handler.post(new Runnable() {
@Override
public void run() {
if(counter < difficulty) {
numberText.setText(numbersArray.get(counter) + "");
counter += 1;
handler.postDelayed(this, 600);
}else{
handler.removeCallbacks(this);
}
}
});

问题是,当处理程序延迟时,代码的其余部分继续运行。我想要的是整个代码在继续之前延迟 X 秒。 处理程序的另一个问题是,您无法访问处理程序之外不是最终变量的变量,因此计数器对我不起作用。

希望这只是我是个白痴,并且有一个简单的解决方案来解决我的问题。

编辑:当我在这里时,是否有可能在另一个延迟中出现延迟?只是为了让我知道将来。

问题是其余

代码在处理程序延迟时继续运行

将要延迟的所有代码移动到某个方法,并根据需要从运行器调用该方法。

处理程序

的另一个问题是,您无法访问处理程序之外不是最终变量的变量,因此计数器对我不起作用。

您可以将计数器变量定义为全局类字段,然后可以从类中的任何位置访问它,而无需将其声明为最终变量。

最新更新