0

この数か月間、私はかなり複雑なゲームを作成しましたが、リリースの準備はほぼ整っています。残っている唯一の問題は、期待どおりにスムーズに実行されていることです。これは、スレッドを構造化した方法によるものだと思います。私のコードのすべては、サーフェスビューを介して行われます。すべての計算、位置の更新、描画、衝突などがそこで行われます。すべての更新を 1 つのスレッドに入れてから、surfacethread での描画のみを処理する必要があるかどうか疑問に思っていました。これはそれを行う適切な方法ですか?もしそうなら、それをどのように実装しますか(非同期タスク、スレッド、ハンドラーなど)?

4

1 に答える 1

1

確かに、UI スレッドで時間のかかる計算を行うことは避けるべきです。ANR エラー メッセージが表示されることもあります。

次のいずれかを使用できます。

  • AsyncTask、しかし、それにはいくつかの欠陥と欠点があることに注意してください。たとえば、開始または完了さえ保証されていません。

  • IntentServicesまたはHandlerThreads、ワーカースレッドで順次実行する必要がある操作を行う必要がある場合

  • WorkerThreadPool真の並列タスクを実行する必要がある場合。

于 2013-07-15T20:20:10.200 に答える