私はゲームを作っており、同時に実行する必要がある可能性のある3つのことがあります。Androidとの並行性
showDamage - 短い瞬間(〜300ミリ秒)の数値をTextViewで表示してから消えます。
遅延 - 一時的なブーストを保持します。 TextViewも最初と最後に更新されます。これは長いです(約10秒)。
クールダウン - ボタンをもう一度押すまでの残り時間をテキストでフィードバックします。
私はいくつかのブラウジングを行い、他のイベントをブロックするハンドラを試した後、UIを変更してタスクをブロックすることなく並行スレッドを作成する簡単な方法としてASyncを使用する必要があります。メインスレッド。だから私は非同期として3つすべてを実装しました。その後私はshowDamageからの数字が300msを超えてぶら下がり、一時的な影響は永久になりました(postExecutionは決して実行されませんでした)。さらに閲覧すると、デフォルトでAndroidにはプールサイズが5であることが示唆されています。したがって、私は5つの非同期しか実行できませんでした。 MyASync.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR、...)を使用すると少しは助けられますが、並行処理ではなく並行処理が提供されます。
私は、クールダウンのためにCountdownTimerを使用しました。一時的な効果が永続的になると問題が停止したようですが、showDamageのTextViewsはまだ十分にスパムされているとハングします。この問題を修正しましたか?おそらく私が間違って実装した試みはありますか?