2013-07-17 22 views
1

我在使用asynctasks時遇到問題。問題是我需要一個asynctask的數據在另一個asynctask開始之前加載到一個靜態變量中,因爲asynctask2需要這個靜態變量。我試着用這個代碼來搪塞asynctask2,但它甚至沒有在我的日誌貓顯示:兩個相互跟隨的Asynctasks

//geocode is the first asynctask                      
      while(geocode.getStatus().equals(android.os.AsyncTask.Status.PENDING)) 
      {try {; 
      wait(100); 
      Log.i("waiting", "waiting"); 
      } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }} 
+0

爲什麼你在使用2個異步任務呢?如果你需要等待第一個完成第二個任務,爲什麼不把第二個任務作爲第一個任務的一部分呢?或者至少從那裏啓動它? –

+0

同意加布。把你需要做的所有事情都放在第一個任務的doInBackground()裏面 – Jameo

回答

2

使用第一的AsyncTask的onPostExecute開始下一個,你就知道它已完成這種方式,它可以安全地開始下一個。然而,我會嘗試去想一個更好的方法來完成你正在嘗試做的事

+0

謝謝你解決了那個問題。如果您有任何建議,我將非常感激。我試圖從谷歌獲取地理編碼信息,然後我必須檢查數據以查看它是否已添加到我的數據庫。據我所知,無論如何,我都需要在多個線程上同時運行它。如果你知道更好的方法來做到這一點,請賜教。謝謝。 – KarlCobb

+0

和其他人所說的一樣,你應該在一個異步任務中做所有事情 – tyczj