Android的/ Java的 - 如何做循环等待做动作 [英] Android/java - How to do that loop wait to do action

查看:374
本文介绍了Android的/ Java的 - 如何做循环等待做动作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试做应用程序,它显示的元素。每个元素都开始显示时,之前的元素被隐藏。每个元素是显示2秒。 code:

I try to do app which show elements. Each element should start showing when the before element was hidden. Each element is showing 2 seconds. Code:

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);

的所有元素被显示在同一时间。我尝试添加

All elements are being shown in the same time. And I try add

Thread.sleep(2500);

但这种采空窗口的作用。我尝试之后,code补充一点:

But this stoped the action in window. I try add this after code:

Timer timer = new Timer();

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

但环并没有留下来。我尝试用做通知()等待(),但它也不起作用。

But loop wasn't stay. I try do it with notify() and wait(), but it also don't work.

不建议我做的做 onFinish下一个动作(),因为这一定是重复了很多。 任何人有另一种想法?

Don't suggest me to do do next action in onFinish() because this must be repeat a lot. Anybody have another idea?

编辑 我还用处理器,但它不工作

EDIT I also use Handler but it don't work

推荐答案

我会建议您不要执行此code在主线程。 创建一个异步任务,其中隐藏了一个按钮和postExequte自称。

I would recommend you not to implement this code in the main thread. Create an async task, which hides a button and on postExequte calls itself.

这篇关于Android的/ Java的 - 如何做循环等待做动作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆