java - 创建不同的 ImageView 对象 - 不同的时间

标签 java android multithreading sleep java-threads

我的应用程序中存在基本的 Java 问题。
我正在创建一个弹跳球程序:

  1. 我有 10 个不同球的 10 个 ImageView 。
  2. 我有一个 Ball 类,它使用自己的线程(球的物理原理)。
  3. 在 MainActivity 中,我创建了一个新球(第一个 ImageView )。

    balls[0] = new Ball (this,images[0])

  4. ? ? ? 直到第4步一切都很完美, 我可以在屏幕上看到一个弹跳的球,但现在我想添加第二个球,依此类推。 我想等待 5 秒直到下一个球出现,但我被卡住了并且遇到了线程问题。

我的问题是:我应该在哪里放置下一个命令 balls[1] = new Ball(this,images[1]); 以及如何在启动前暂停它并等待 5 秒。

我应该在主要 Activity 中创建另一个线程并使用“ sleep ”吗? 如果是这样-它将是一个调用新线程的线程(我的问题)

最佳答案

不要使用 sleep ,因为您不想让您的 Activity 处于搁置状态并使其无响应。

如果您想等待 5 秒,处理程序可能会帮助您,使用 postDelay:

new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                   balls[1] = new Ball (this,images[1]); 
            }
        }, 5000); //in milliseconds - the code inside run() will run after 5 seconds

您当然可以创建一个循环并用它来处理所有球。

关于java - 创建不同的 ImageView 对象 - 不同的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303939/

相关文章:

android - 如何在 sqlite 中存储跨区字符串?

java - 您在 Java 中遇到的最常见的并发问题是什么?

.net - 为什么我的收藏决定从 0 而不是 1 开始?

java - Eclipse 中的枚举 nosuchmethoderror

java - Orika 使用 BoundMapperFacade 而不是 MapperFacade

android - 如何在应用程序关闭/最小化时停止 MediaPlayer 声音?

Android 和 Eclipse - 引用库

java - 如何在特定时间段将文件加载到网络应用程序中?

java - 在 PaintComponent() 之外绘制形状 (java)

java - 如果在 springboot 的结果中合并/组合,缓存方法(使用咖啡因)是否可能返回部分响应?