私はアンドロイドを使用して少しゲームを書いて、スレッドにいくつかの問題があります。ゲームのメインループ は、この独自のスレッドで実行され、基本的にはこのような何かを行います。Androidのスレッド - ランニング可能なキュー
public void run() {
while (true) {
NativeGameLib.gameTick(t);
}
}
今、私は私のNativeGameLibへのタッチ入力を渡したいが。私は、UIスレッドでビューのonTouchEvent()を使用し、実行可能な内部を作成し、メインループスレッドで実行させることを考えました。
しかし、私は本当にそれを行う方法を取得していません。私は、HandlerクラスとLooperクラスがあり、ハンドラを使ってランナブルをmessageQueueとLooper.loop()関数に投稿してキューを処理できることを確認しました。
私が理解する限り、loop()関数は無限に新しいメッセージをチェックし、スレッドをブロックします。 それでは、スレッドと組み合わせるにはどうすればいいですか?私はスレッドのように何かをしたい:
public void run() {
while (true) {
processMessageQueue();
NativeGameLib.gameTick(t);
}
}
すべてのアイデア?おかげさまで
私は現在、2つのスレッドを使用して解決していると思います。 1つは、入力イベントを処理するrunableを取得するHandlerThreadと、NativeGameLib.gameTick(t)を含むrunableを定期的に生成する第2のスレッドです。コール。 しかし、私はそれが本当にエレガントではないと思います。 – Dirk
C:\ android-sdk \ samples \ android-10 \ JetBoy C:\ android-sdk \ samples \ android-10 \ LunarLander – Selvin