所以我正在製作一款遊戲,並且有三件事情可能需要同時運行。與Android併發
showDamage - 顯示片刻(〜300毫秒),則消失的數(在一個TextView)。
延遲 - 對持有臨時提升。 TextView也在開始和結束時更新。這很長(〜10秒)。
冷卻 - 提供了在時間的用戶,直至剩餘的按鈕,可以再次按下文本反饋。
我做了一些瀏覽,並試圖阻止其他事件的處理程序後,來到一般意見,我應該使用ASyncs作爲一種簡單的方法來使併發線程,使UI的變化和做任務,而不會阻止主線程。所以我實現了所有3個Asyncs。然後我遇到了一個問題,他們會互相干擾 - showDamage中的數字會持續超過300毫秒,臨時效果將變爲永久性的(post執行從未運行)。進一步的瀏覽表明,默認情況下,Android的池大小爲5,因此我只能運行5個Asyncs。使用MyASync.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,...)會有所幫助,但它提供的並行性不是併發性。
我已經使用了CountdownTimer用於冷卻和似乎已經停止發行與臨時性的效果,成爲永久的,但是從showDamage的TextViews如果有足夠多的垃圾郵件仍然掛起。有沒有解決這個問題,是否有任何嘗試,我可能不正確地實施?