Runnable无法正常工作

时间:2015-07-07 00:25:15

标签: android handler runnable

      public void delay() { //give delay before comp can  play
      Handler handler = new Handler();
       handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            startPlay();
        }
       }, 1500);
   }

我制作了一个有九个按钮的游戏,玩家可以在手机上玩游戏。这些按钮中的每一个都调用上面的延迟方法,以在播放器播放和手机有机会播放之间产生延迟但是当我测试游戏时有时延迟很好但有时我注意到延迟非常短如果没有调用延迟方法。我想知道为什么会这样发生。感谢。

1 个答案:

答案 0 :(得分:0)

由于您的所有按钮在SELECT a FROM Entities\Auction a INNER JOIN a.item i INNER JOIN i.bookTypes b WHERE i.id IN ( SELECT b.id FROM Entities\Book b WHERE b.type = 'Fantasy' ) ms的延迟后调用相同的方法startPlay(),我不认为您能够区分延迟造成的按个人按钮。

假设您有2个按钮,Button1和Button2以及Button3。单击Button1时,会发生1500ms的延迟,然后立即(1秒后)按下Button2。因此创建了一个新的处理程序,它将再次延迟1500毫秒。但是现在Button1的延迟结束了,1500将会执行。现在这个startPlay()属于Button1而不是Button2。 Button2' s startPlay()将在500毫秒(1500毫秒 - 1秒)后调用。