2

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

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

现在我想将触摸输入传递给我的 NativeGameLib。我想我在 UI 线程中使用视图的 onTouchEvent(),在里面创建一个可运行的,让它在主循环线程上执行。

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

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

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

有任何想法吗?谢谢。

4

1 回答 1

0

你检查过 View.Post API 吗?

http://developer.android.com/reference/android/view/View.html#post(java.lang.Runnable )

于 2011-12-25T12:55:52.790 回答