java - Android/java - 如何执行该循环等待执行操作

标签 java android loops

我尝试做显示元素的应用程序。每个元素应该在前一个元素被隐藏时开始显示。每个元素显示 2 秒。 代码:

public void gameStart()
{
    do
    {
        data = random.nextInt(6) + 1;

                if (data == 1)
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element1.setVisibility(View.VISIBLE);

                        }

                        @Override
                        public void onFinish()
                        {
                            element1.setVisibility(View.GONE);

                        }
                    }.start();
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element2.setVisibility(View.VISIBLE);

                        }

                        @Override
                        public void onFinish()
                        {
                            element2.setVisibility(View.GONE);

                        }   
                    }.start();

                } else if (data == 3)
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element3.setVisibility(View.VISIBLE);
                        }

                        @Override
                        public void onFinish()
                        {
                            element3.setVisibility(View.GONE);

                        }
                    }.start();

                } else if (data == 4)
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element4.setVisibility(View.VISIBLE);

                        }

                        @Override
                        public void onFinish()
                        {
                            element4.setVisibility(View.GONE);

                        }
                    }.start();

                } else if (data == 5)
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element5.setVisibility(View.VISIBLE);
                        }

                        @Override
                        public void onFinish()
                        {
                            element5.setVisibility(View.GONE);

                        }
                    }.start();


                } else if (data == 6)
                {
                    CountDownTimer cdt = new CountDownTimer(2000, 1000)
                    {

                        @Override
                        public void onTick(long millisUntilFinished)
                        {
                            element6.setVisibility(View.VISIBLE);
                        }

                        @Override
                        public void onFinish()
                        {
                            element6.setVisibility(View.GONE);

                        }
                    }.start();


                }



                id = id + 1;
                text.setText("cos " + id);




    } while (id < 3);

所有元素同时显示。然后我尝试添加

Thread.sleep(2500);

但这停止了窗口中的 Action 。我尝试在代码后添加:

Timer timer = new Timer();

timer.schedule( new TimerTask() {
    public void run() {
    }
 }, 0, 60*1000);

但是循环并没有停留。我尝试使用 notify()wait() 来实现,但它也不起作用。

不要建议我在 onFinish() 中执行下一步操作,因为这必须重复很多次。 有人有其他想法吗?

编辑 我也用 Handler 但它不起作用

最佳答案

我建议你不要在主线程中实现这段代码。 创建一个异步任务,它隐藏一个按钮并在 postExequte 上调用自身。

关于java - Android/java - 如何执行该循环等待执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24043207/

相关文章:

Java 在同一循环中添加/删除,没有 ConcurrentModificationException

java - 为什么 findViewById 返回 null?

android - Android 版 Flash CS6 发布

java - J2ME 字符串拆分器计数器

java - 单击按钮后无法修改或编辑 JFrame 字段

android - 在为 eclipse indigo 安装 android 插件时出现以下错误

Javascript函数问题

javascript - 按顺序循环加载带有 promise 的图像

javascript - MooTools/JavaScript 变量范围

java - 在java中读取.po文件时出错