2

Android を使用して小さなゲームを作成しようとしていますが、スレッドに問題があります。ゲームのメインループはこの独自のスレッドで実行され、基本的に次のようなことを行います。

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

ここで、タッチ入力を NativeGameLib に渡したいと思います。UIスレッドでビューのonTouchEvent()を使用し、内部で実行可能ファイルを作成して、メインループスレッドで実行できるようにしました。

しかし、私は本当にそれを行う方法がわかりません。Handler と Looper クラスがあり、handler を使用して runable を 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 に答える