Android迷你游戏 - 延迟代码

时间:2017-04-05 09:48:12

标签: java android delay handler

首次在android studio中编程,并试图制作认知测试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秒。   处理程序的另一个问题是,您无法访问处理程序之外的最终变量,因此计数器对我不起作用。

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

编辑:虽然我在这里,是否有可能在另一个延迟内延迟?就是我将来知道的。

1 个答案:

答案 0 :(得分:0)

  

问题是代码的其余部分在处理程序延迟时继续运行

将您想要延迟的所有代码移动到方法中,并根据您的要求从跑步者调用该方法。

  

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

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