我有两个异步任务。假设A和B。首先执行A,然后在执行后调用B。现在,我需要在任务B结束后显示进度栏。就像从A的0开始到B的100结束的百分比一样。
答案 0 :(得分:1)
在onPreExecute
和onProgressUpdate
中来自asynctask A:
@Override
protected void onPreExecute() {
super.onPreExecute();
//show progress bar
}
@Override
protected void onProgressUpdate(Integer... progress) {
ProgressBar.setProgress(progress[0]/2)//we will take only 50% of the progress
}
在您的onPostExecute
和onProgressUpdate
在异步任务B中
@Override
protected void onProgressUpdate(Integer... progress) {
ProgressBar.setProgress(progress[0]/2)//we will take the other 50% of the progress
}
@Override
protected void onPostExecute(String result){
//hide progress here
}
请确保将进度条设置为本地,以便您既可以通过asynctask进行访问
答案 1 :(得分:0)
在AsyncTasks
中,您可以在onProgressUpdate
或onPostExecute
回调中更新UI。这两个回调在主(UI)线程中运行,而doInBackground
在 worker 线程中运行。
为了使“ {B}”进度条在完成AsynctaskA
之后显示,我将在AsyncTaskB
的{{1}}回调中启动onPostExecute
,然后进行更新进度条B在其AsyncTaskA
回调
onProgressUpdate