如何延迟执行android

我正在构建一个具有AIfunction的Android棋盘游戏。 AI转向并且必须调用一系列操作,之后它会向我的自定义视图发布无效更新。

我需要放慢这些操作的速度,这样用户才能看到AI轮到它而不是闪烁。

我试过这些方面的东西

try { doFirstThing(); Thread.sleep(500) //post invalidate doNextThing(); Thread.sleep(1000) //post invalidate } catch (Exception e) { } 

然而,这绝对没有效果。 如果这不明显,这也是在一个单独的线程中运行。

什么是我最好的选择我看了处理程序,但他们不需要正确,因为我需要按顺序执行一系列任务每次更新视图。

使用Handler,如果从UI线程执行,这是个好主意…

  final Handler h = new Handler(); final Runnable r2 = new Runnable() { @Override public void run() { // do second thing } }; Runnable r1 = new Runnable() { @Override public void run() { // do first thing h.postDelayed(r2, 10000); // 10 second delay } }; h.postDelayed(r1, 5000); // 5 second delay 

只是添加一个示例:以下代码可以在UI线程之外执行。 当然,Handler必须用于延迟Android中的任务

 Handler handler = new Handler(Looper.getMainLooper()); final Runnable r = new Runnable() { public void run() { //do your stuff here after DELAY milliseconds } }; handler.postDelayed(r, DELAY);