java - Android小游戏-延迟代码

标签 java android delay handler

第一次在android studio中编程,正在尝试制作认知测试数字跨度的最小可行产品。这个想法是,每隔 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 秒。 处理程序的另一个问题是您无法访问处理程序之外的非最终变量,因此计数器对我不起作用。

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

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

最佳答案

The problem is that the rest of the code keeps running while the handler is delayed

将您想要延迟的所有代码移动到一个方法中,并根据您的要求从运行器中调用该方法。

Another problem with handlers are that you can't acces variables that aren't final outside the handler, so counters aren't working for me.

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

关于java - Android小游戏-延迟代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43227630/

相关文章:

java - Netbeans:如何创建包含所有库和资源文件的可执行 .jar 文件?

Java.Lang.NoClassDefFoundError android.arch.core.internal.FastSafeIterableMap

java - Hazelcast 成员之间的高延迟(使用主题发布/onMessage)

Javascript mootools 延迟隐藏/显示多级菜单

r - slider 输入延迟

Java - 当从另一个方法创建对象时,尝试从主方法中打印对象的 get 方法

java - 循环在一次运行中运行两次

java - 遍历异构容器

android - 如何在软键盘 Android 的前面显示我的布局?

android - 绑定(bind)变量为null..如何让UI中的观察者等待查询的Livedata从数据库中执行?