eme*_*ieu 21 multithreading android android-2.2-froyo android-asynctask
我有3 AsyncTasks和1 ProgressBar.我希望当任何任务执行时,进度条可见,当所有任务完成时,进度条是不可见的.
在Java中,有ExecutorService::isTerminated检查是否所有runnables都已完成但Android没有.
更新:3个任务同时执行.
数字.

Moj*_*sin 23
漂亮的图形.但我担心没有建立机制.你必须自己实现它.您可以使用的解决方案很少 -
尝试使用AsyncTask.getStatus().这完全没问题.请参阅以下示例代码.
List<AsyncTask<String, String, String>> asyncTasks = new ArrayList<AsyncTask<String, String, String>>();
AsyncTask<String, String, String> asyncTask1 = new uploadTask().execute(string);
AsyncTask<String, String, String> asyncTask2 = new downloadTask().execute(string);
AsyncTask<String, String, String> asyncTask3 = new createTask().execute(string);
asyncTasks.add(asyncTask1);
asyncTasks.add(asyncTask2);
asyncTasks.add(asyncTask3);
Run Code Online (Sandbox Code Playgroud)
您可以稍后循环AsyncTaskList并查找每个任务的状态,如下所示.
for(int i=0;i<asyncTasks.size();i++){
AsyncTask<String, String, String> asyncTaskItem = (AsyncTask<String, String, String>)asyncTasks.get(i);
// getStatus() would return PENDING,RUNNING,FINISHED statuses
String status = asyncTaskItem.getStatus().toString();
//if status is FINISHED for all the 3 async tasks, hide the progressbar
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21111 次 |
| 最近记录: |