因为要去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对象? –