2014-05-04 27 views
0

我的应用程序产生了一个AsyncTask,它可能会耗费大量时间。所以,AsyncTask取消隐藏一个进度条:跟踪Android中的几个AsyncTasks

@Override 
protected void onPreExecute() { 
    progressBar.setProgress(0); 
    progressBar.setVisibility(View.VISIBLE); 
} 

progressBar被初始化在构造函数)进度条重新隐藏计算结束后:

@Override 
protected void onPostExecute(String result) { 
    progressBar.setVisibility(View.GONE); 
    // ... 
} 

我想改变应用程序,以便其中的一些任务同时运行(万岁多个内核!)。问题是,这种设计,第一AsyncTask隐藏进度条,尽管仍有一些运行其他任务。

只有最后一个任务执行一个动作,或者当我调用完所有任务后才执行一个动作,最好的方法是什么?

+0

有趣的一致,我碰巧有相同的[问题](http://stackoverflow.com/questions/23461113/execute-task-after-several-async-connections)。 – Leandros

回答

2

我使用一个简单的计数器在onExExcute中递增并在onPostExecute上递减。如果计数器达到0,则隐藏进度条。

+0

只是在类的静态变量?如果我用不同的进度条调用任务会怎么样? – thirtythreeforty

+1

在我来说,我使用操作杆不确定的进度栏,让所有的网络活动是由一个进度条显示。 Activity中的非静态整数保留了待处理任务计数的记录。 – darnmason

+1

如果您使用不同的进度条(在布局的不同部分),那么我相信您会希望独立显示和隐藏它们,并为每个进行不同的计数。 – darnmason