本文介绍了检查是否所有AsyncTasks已经完成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有3个AsyncTasks
和1个ProgressBar
.我想要执行任何任务时,进度条都可见,而当所有任务完成时,进度条不可见.
I have 3 AsyncTasks
and 1 ProgressBar
. I want when any of task executes, the progress bar is visible and when all of them finish, the progress bar is invisible.
在Java中,有ExecutorService::isTerminated
可以检查所有可运行对象是否都已完成,但Android没有.
In Java, there is ExecutorService::isTerminated
to check if all runnables finished but Android doesn't have it.
更新:3个任务同时执行.
Update: 3 tasks execute at the same time.
图.
推荐答案
精美的图形.但是,恐怕还没有内置的机制.您必须自己实施.您可以使用的解决方案很少-
Nice graphic. But I am afraid there is no build in mechanism for this. You'll have to implement it by yourself. There are few solutions you could use -
- 保留对所有3个任务的引用.当任务完成时,请检查其他两个任务是否也已完成;如果是,则关闭进度对话框;如果否,请等待其他任务完成,然后再次检查.完成后,请确保释放参考.
- 如果您不想保留引用,请存储一个计数器.任务完成后,增加计数器并检查其是否等于3.如果所有任务都已完成并且您已完成.如果执行此操作,请确保同步对计数器的访问.
这篇关于检查是否所有AsyncTasks已经完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!