我創建了一個類DataAdapter
,它啓動線程以從webservices獲取數據。當使用一個活動叫做如何知道外部類中的AsyncTasc已完成?
DataAdapter.InitData();
我怎麼能知道當兩個線程都完成了嗎?
感謝 七月
public class DataAdapter {
private final static String URL = "http://www.mywebservice.com";
private final static String URL_AD = "http://www.mywebservice2.com";
public void InitData(){
new GetInitData().execute(URL);
new GetAd().execute(URL_AD);
}
private static class GetInitData extends AsyncTask<String, Integer, JSONObject> {
protected JSONObject doInBackground(String... urls) {
JSONObject json = RestJsonClient.getJSONObject(urls[0]);
return json;
}
protected void onProgressUpdate(Integer... progress) {
}
protected void onPostExecute(JSONObject json) {
//process data
}
}
private static class GetAd extends AsyncTask<String, Integer, JSONObject> {
protected JSONObject doInBackground(String... urls) {
JSONObject json = RestJsonClient.getJSONObject(urls[0]);
return json;
}
protected void onProgressUpdate(Integer... progress) {
}
protected void onPostExecute(JSONObject json) {
//process data
}
}
}
在每個類的onPostExecute中調用一個方法來設置另一個線程中的布爾值,該線程正在等待兩個線程完成。 當他們都完成後,你可以調用另一種方法來做任何你想做的事情。 – Blundell 2011-05-24 12:14:01