цель не может вообще остановить и httpClient
И httpget
force Стоп httpClient httpget?
, когда я нажимаю на прогресс диалогового cancel
кнопку Request
и AsyncTask
должны остановиться и прервать но его нет, запрос все еще работает, пока ее закончил
это мой AsyncTask
код испытания
public class getAlbuminfo extends AsyncTask<String,String, String> {
ProgressDialog progressDialog;
JSONObject data = null;
boolean prependMore = false;
//Http
HttpClient httpClient;
HttpGet httpget;
/**********
* Begien
*/
@SuppressWarnings("deprecation")
@Override
protected void onPreExecute() {
if (onlypagenat == false)
{
progressDialog = new ProgressDialog(context);
progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true);
progressDialog.setMessage(context.getResources().getString(R.string.opening_album));
progressDialog.setButton(context.getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
cancel(true);
finish();
}});
progressDialog.show();
}
prependMore = appendMore;
appendMore = false;
}
/**************
* IF Canceled
*/
@Override
protected void onCancelled() {
Log.i("Http Response:", "Aborted");
if (httpget != null)
{
httpClient.getConnectionManager().shutdown();
httpget.abort();
}
}
/****************
* Make Request
*/
@Override
protected String doInBackground(String... params) {
String response = null;
String url = Api.foruminfo.forum_api_url+"/album.php?albumid="+albumid+"&page="+page+"&onlypagenat="+(onlypagenat?1:0);
httpClient = new DefaultHttpClient();
httpget = new HttpGet(url);
//Add Values User Headers and Cookies
httpget.addHeader("Cookie", Api.forumCookies());
httpget.setHeader("Accept-Charset", "utf-8");
// Making HTTP Request
try {
HttpResponse serverResponse = httpClient.execute(httpget);
Log.i("Http HttpResponse:", serverResponse.toString());
//Set Response
response = EntityUtils.toString(serverResponse.getEntity());
} catch (ClientProtocolException e) {e.printStackTrace();
} catch (IOException e) { e.printStackTrace();}
return response;
}
/**********************
* Done
*/
@Override
protected void onPostExecute(String response) {
Log.i("Http HttpResponse:", response);
if (onlypagenat == false)
{
progressDialog.dismiss();
}
}
}
Любые советы, пожалуйста, как полная остановка Получить или сообщение http
запрос в андроид !!
Наконец род нашел решение, спасибо: D его прекрасно работали в настоящее время, направлены в состоянии прервать запрос HTTP;) Еще раз спасибо –
Won 't это убить все соединения в пуле соединений? Как насчет того, чтобы убить только соединение, которое используется для этого запроса, чтобы вы не убивали других запросов, которые выполняются в данный момент? –
@KevinM С помощью [httpGet.abort()] (http://developer.android.com/reference/org/apache/http/client/methods/HttpRequestBase.html#abort%28%29) вы можете закрыть фактическое соединение без закрытия всего клиента. –