首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android如何延时执行

android如何延时执行
EN

Stack Overflow用户
提问于 2013-01-25 05:03:26
回答 2查看 16.8K关注 0票数 16

我正在构建一个机器人棋盘游戏,其中具有人工智能。AI需要调用一系列的操作,之后它会将失效信息发送到我的自定义视图中进行更新。

我需要放慢这些动作,这样用户才能看到AI在轮流而不是闪过。

我已经尝试过这些方法了

代码语言:javascript
复制
    try {
        doFirstThing();
        Thread.sleep(500)
        //post invalidate

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

然而,这完全没有效果。此外,如果这一点不明显,它将在单独的线程中运行。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-25 05:21:35

使用处理程序,如果您从UI线程执行,这是一个好主意……

代码语言:javascript
复制
    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
票数 21
EN

Stack Overflow用户

发布于 2015-02-27 05:52:08

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

代码语言:javascript
复制
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);
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14510709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档