我正在构建一个机器人棋盘游戏,其中具有人工智能。AI需要调用一系列的操作,之后它会将失效信息发送到我的自定义视图中进行更新。
我需要放慢这些动作,这样用户才能看到AI在轮流而不是闪过。
我已经尝试过这些方法了
try {
doFirstThing();
Thread.sleep(500)
//post invalidate
doNextThing();
Thread.sleep(1000)
//post invalidate
}
catch (Exception e) {
}然而,这完全没有效果。此外,如果这一点不明显,它将在单独的线程中运行。
我看过的处理程序的最佳选择是什么,但它们不需要正确的,因为我需要按顺序执行一系列任务,每次都要更新视图。
发布于 2013-01-25 05:21:35
使用处理程序,如果您从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发布于 2015-02-27 05:52:08
仅添加一个示例:以下代码可以在UI线程之外执行。当然,在Android中必须使用Handler来延迟任务
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);https://stackoverflow.com/questions/14510709
复制相似问题