我AsyncTask
樣子:等待publishProgress之前完成繼續EXCUTE doInBackground的AsyncTask的Android
private class MyTask extends AsyncTask<String, Void, List<Data>> {
private volatile UserData userData;
protected List<Data> doInBackground(String... params) {
// do some job 1
publishProgress();
// wait until the progress finish to update variable.
if(userData!= null){
//do some job 2
}
//do some job 3
}
protected void onProgressUpdate(Void... values) {
// try to ask user and collect information
userData= getData();
}
}
問題是,當我打電話publishProgress()
,但它仍然在doInBackground
執行任務3。在繼續之前,我如何等待onProgressUpdate完成?
更新:
在getData()方法,我試圖讓用戶的當前位置,即不能在doInBackground並從視圖中的一些其他信息工作。我必須這樣做,導致作業1需要很長時間,並且用戶的當前位置可以改變。我需要用戶的最確切位置。
使用等待和通知,這就是他們的目的。 – njzk2