2011-07-07 107 views
2

我正在徘徊是他们无论如何延迟方法启动时,它被称为。我有一个更新方法,我想在启动之前添加一个3秒的延迟。方法启动延迟

在此先感谢

+0

你应该说明为什么你需要做到这一点。每当你考虑在代码中添加“睡眠”或“延迟”时,几乎总是做错事情。 –

+0

我需要停止创建如此之快的精灵。 – Manji

回答

3

这看起来像一个Handler的好工作。创建活动为您提供处理程序,然后用它来发布可运行(它应该包含你的代码):对在official doc处理

handler.postDelayed(new Runnable(){ 
    public void run(){ 
     // Your code goes here... 
    } 
}, 3000); // Delay by 3000ms 

更多信息。

+0

非常感谢,我不知道我可以像那样使用它。 – Manji

0

您是想回拨还是直接暂停?

您可以使用Thread.sleep()来引入延迟,但是如果您的应用程序是单线程的,则会给整个应用程序带来延迟。

否则,您可能想要生成一个执行此方法的线程,并且线程可以继续睡眠三秒钟,然后再使用ScheduledThreadPoolExecutor执行带有3秒延迟初始延迟的runnable。

+0

它是单线程的,并且将更新方法内的内容放入其自己的线程内会导致一些问题。 – Manji

0

这里看到的,你可以简单地添加了Thread.sleep()命令:

try{ 
    Thread.sleep(4000); 
} catch (InterruptedException ie)