Android 线程 - 队列可运行

标签 android multithreading handler looper

我尝试使用 android 编写一个小游戏,但在线程方面遇到了一些问题。 游戏的主循环在这个自己的线程中运行,基本上只是做这样的事情:

  public void run() {
    while (true) {
      NativeGameLib.gameTick(t);
    }
  }

现在我想将触摸输入传递到我的 NativeGameLib。我想我在 UI 线程中使用 View 的 onTouchEvent(),在内部创建一个可运行的并让它在主循环线程上执行。

但我真的不知道该怎么做。我看到有一个 Handler 和一个 Looper 类,我可以使用处理程序将可运行对象发布到 messageQueue 和 Looper.loop() 函数来处理队列。

据我所知,loop() 函数不断地检查新消息并因此阻塞了线程。 那么,我怎样才能将它与我的线程结合起来。我想在线程中做这样的事情:

  public void run() {
    while (true) {
      processMessageQueue();
      NativeGameLib.gameTick(t);
    }
  }

有什么想法吗? 谢谢。

最佳答案

关于Android 线程 - 队列可运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629511/

相关文章:

android - 由于符号无效,构建失败

android - 如何复制 Android AudioSource.MIC?

android - 防止整个应用程序 android 的旋转

c# - 为什么我的 WCF 服务一次只处理 3 个并行请求?

javascript - 未捕获的类型错误 : Cannot set property 'onclick' of null

android - 从 Firebase 数据库检索数据并将其设置到 recyclerview 适配器中

java - StreamCorruptedException : invalid type code: AC

c++ - 单线程两个进程

android - 如何让场景更新处理程序在 Action 启动时中断 (AndEngine)?

android - 为什么哔声会导致应用程序崩溃?