我有一個關於的AsyncTask quastion,我希望有人爲可以給我一些建議。我正在執行AsyncTasks以從互聯網獲取數據。這個任務是在一個單獨的課堂上。我有多個AsyncTasks執行完全相同的操作,但他們在不同的時刻被調用並將數據傳回不同的方法。在當前的AsyncTask中,我可以執行它並提供一個或多個url作爲參數。Android的 - 通過額外的參數的AsyncTask
我的問題是:有沒有一種方法來發送一個額外的參數給的AsyncTask,這樣我可以在onPostExecute使用的開關情況來決定,其中的Webdata應該去?
這是的AsyncTask類之一:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import android.os.AsyncTask;
import android.util.Log;
public class GetContactpersoonFromWeb extends AsyncTask<String, Void, String> {
String result = "";
String webData;
FirstScreen activity;
public GetContactpersoonFromWeb(FirstScreen activity)
{
this.activity = activity;
}
protected String doInBackground(String... urls) {
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet(urls[0]);
HttpResponse response;
try {
response = httpClient.execute(httpGet, localContext);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = null; //vanaf niks beginnen
while ((line = reader.readLine()) != null) {
result += line + "\n";
}
this.webData = result;
}
catch (Exception e) {
Log.d("info","error bij het ophalen van de data", e);
}
return this.webData;
}
protected void onPostExecute(String result) {
this.webData = result;
activity.getContactpersoonData(webData);
}
}
與其他AsyncTasks不同的是最後一個規則:activity.getFabricData(webData);
在其他類,它是:activity.getMachineData(webData);
等。
有沒有人有一個想法如何只用1級實現這一目標?我認爲使用7個課程只有1個差異規則並不是最好的方法。
在此先感謝!
傳遞價值的AsyncTask的構造和使用它。 – Raghunandan