检查是否所有AsyncTasks已经完成 [英] Check if all AsyncTasks have finished

查看:87
本文介绍了检查是否所有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 -

  1. 保留对所有3个任务的引用.当任务完成时,请检查其他两个任务是否也已完成;如果是,则关闭进度对话框;如果否,请等待其他任务完成,然后再次检查.完成后,请确保释放参考.
  2. 如果您不想保留引用,请存储一个计数器.任务完成后,增加计数器并检查其是否等于3.如果所有任务都已完成并且您已完成.如果执行此操作,请确保同步对计数器的访问.

这篇关于检查是否所有AsyncTasks已经完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆