所以我正在制作一款游戏,并且有三件事情可能需要同时运行。与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如果有足够多的垃圾邮件仍然挂起。有没有解决这个问题,是否有任何尝试,我可能不正确地实施?