0

通常のビュー(上下のアクションを受け取るボタン)とサーフェスビューの2種類のビューを持つ画面を作成しました。SurfaceViewSurfaceHolder.Callbackは別のスレッドで実装および実行され、メソッド名がありTick()ます。

これらのボタンがアクションを受け取ると、 method が呼び出さTick()れます。このメソッドが SurfaceView と同じスレッドを実行するようにしたいのですが (同期の目的で)、方法がわかりません。

私の問題について何か考えを教えてください。

ありがとう :)

4

1 に答える 1

1

Tick()表面にも描画する別のスレッドでメソッドを実行したい場合は、 HandlerThreadを使用できます。したがって、そのハンドラーを作成し、このスレッドで実行されるランナブルを投稿できます。ただし、これは描画ルーチンにもいくつかの制限を課します。スレッドがメッセージキューを処理する必要があるため、描画ルーチンがスリープまたは待機しないようにする必要があります。

しかし、実際には、同じスレッドでこのメソッドを実行するよりも、他の合理的な同期方法の方が簡単だと思います。

于 2012-07-16T12:16:55.883 に答える