android - 如何延迟执行android

标签 android multithreading postdelayed

我正在构建一个具有 AI 功能的安卓棋盘游戏。 AI 得到一个转折点,必须调用一系列操作,然后将无效发布到我的自定义 View 以进行更新。

我需要放慢这些 Action ,以便用户看到 AI 轮到它而不是它一闪而过。

我已经尝试了一些类似的方法

    try {
        doFirstThing();
        Thread.sleep(500)
        //post invalidate

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

但是这完全没有效果。如果这不明显,这也将在单独的线程中运行。

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

最佳答案

使用处理程序,如果您从 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

关于android - 如何延迟执行android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14510709/

相关文章:

android - 无法通过 Android 应用程序访问 Facebook 好友

android - Gradle:根据 Maven 本地或远程存储库中的最新版本解决 SNAPSHOT 依赖性

java - 设置线程优先级以执行相同的方法

android - 在 android 中使用处理程序和 postDelayed 暂停

Android - 关于postDelayed和Threads的问题

java - 使用 Location.getSpeed 时崩溃

java - 构建 .aar 时如何修复错误

multithreading - 如何让我的应用程序在监控数百个实时设备的同时表现良好?

c# - 寻找一些 UI 线程和工作线程教程

java - 在 For 循环中 hibernate 或等待