因爲要去link當我在後臺打開一個URL其「喜歡」的文章3020的Android - HttpClient的只能使用一次
我與HttpClient的這樣做:
public static class LoadURL extends AsyncTask<Void, Integer, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
second_client = new DefaultHttpClient();
String getURL = "http://website.com/" + id_string + "/like/";
HttpGet get = new HttpGet(getURL);
HttpResponse responseGet = second_client.execute(get, cookieStuff);
Log.i("Response", String.valueOf(response.getStatusLine().getStatusCode()));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Toast.makeText(AFragment.context, "Article liked", Toast.LENGTH_LONG).show();
}
}
問題是有很多文章(3020-3021-3022等),所以用戶會多次點擊'like'按鈕。這意味着LoadURL任務多次完成,但它僅在第一次運行。所有時間之後,它需要5分鐘以上。
有人知道如何解決這個問題嗎?還是有比使用HttpClient更好的方法?
asynctask在單線程上運行。他們不會平行運行。您可以使用執行程序來實現此目的.http://developer.android.com/reference/java/util/concurrent/ExecutorService.html。 http://developer.android.com/reference/java/util/concurrent/Executor.html – Raghunandan
所以在onPostExecute我必須殺死AsyncTask?你能解釋一下嗎? – GromDroid
你是如何執行AsyncTask的,每次點擊按鈕創建AsyncTask對象? –