Java Android:定时器/延迟替代方案

Java Android:定时器/延迟替代方案,java,android,timer,delay,Java,Android,Timer,Delay,我想让一个图像在60毫秒内可见,然后不可见,然后我想让另一个图像也这样做。。等等我认为我没有正确使用计时器。。因为当我运行应用程序时,两个图像同时打开,当我按下使用此功能的按钮时不会消失。 下面是一些示例代码 timer.schedule(new TimerTask() { @Override public void run() { LED_1.setVisibility(Vi

我想让一个图像在60毫秒内可见,然后不可见,然后我想让另一个图像也这样做。。等等我认为我没有正确使用计时器。。因为当我运行应用程序时,两个图像同时打开,当我按下使用此功能的按钮时不会消失。

下面是一些示例代码

timer.schedule(new TimerTask()
        {
            @Override
            public void run()
            {
                LED_1.setVisibility(View.VISIBLE);
                                    // LED_1 is an ImageView
            }
        }, 60);
        LED_1.setVisibility(View.INVISIBLE);

timer2.schedule(new TimerTask()
        {
            @Override
            public void run()
            {
                LED_2.setVisibility(View.VISIBLE);
                                    // LED_2 is an ImageView
            }
        }, 60);
        LED_2.setVisibility(View.INVISIBLE);
还有其他选择吗?我试过这样的例子。。

但这不是我想要的

我做错了什么?或者有没有其他方法可以让我这样做

谢谢

-错误

永远,迪玛

            int delayRate = 60;
        final Runnable LED_1_On = new Runnable()
    {
        public void run()
        {
            LED_1.setVisibility(View.VISIBLE);
                    handler.postDelayed(this, delayRate);

        }
    };

    handler.postDelayed(LED_1_On, delayRate);

    final Runnable LED_2_On  = new Runnable()
    {
        public void run()
        {
            LED_1.setVisibility(View.INVISIBLE);
            LED_2.setVisibility(View.VISIBLE);
                    handler3.postDelayed(this, delayRate);

        }
    };

    handler.postDelayed(LED_2_On, delayRate);

问题是两个计时器都有60毫秒的延迟,在两者的run方法中,您将它们设置为可见。您需要更改其中一个运行方法以将其设置为不可见。

您可以尝试使用处理程序,它将smth发布到UI线程,它可以延迟发布

您正在创建两个事件,这两个事件都将在60毫秒后触发


您可以将第一个事件设置为60毫秒后触发,第二个事件设置为120毫秒后触发,或者让第一个事件在第一个事件运行60毫秒后触发第二个事件的提交。

可能重复-好的,现在就尝试一下。但有一个问题。。因为我必须在运行后以毫秒为单位输入延迟数。。这难道不意味着ImageView将在60毫秒内“不可见”吗?好吧,我试过你说的,现在第一个LED根本不“可见”.当你使用处理程序时,记得取消暂停时的回调:-)嘿,我正在研究处理程序,但我不确定如何实现它。我一直在阅读Android开发者参考页面和一些示例代码,但我不确定如何将我已经拥有的转换为使用处理程序。感谢这个示例,我尝试了它,但现在它只显示最后一个可见的图像,而不是当我按下按钮时显示的第一个图像。查看我原来帖子中的代码片段。现在第一个LED开始闪烁,或者LED 2,我尝试了120毫秒的延迟,仍然是相同的问题。