Android AsyncTask 没有结束
Android AsyncTask does not end
我的AsyncTasks 用于调用网络服务。五,确切地说。每个 AsyncTask 在最后一个完成时开始。
我手上的AsyncTasks都正常,但有时AsyncTask没有结束。它永远持续下去。好像跟设备idle/locked有关,但我不能准确确认。
LogCat 没有显示错误。
我认为这可能与AsyncTask 语句或HttpCLient 语句有关。所以我将两者都留在这里:
//http client onCreate()
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
defaultClient = new DefaultHttpClient(httpParameters);
//AsyncTask declaration:
private class Async extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
//handles the webservice (with DOM)
return null;
}
@Override
protected void onPostExecute(String result) {
pd.dismiss();
//starts next Activity
}
@Override
protected void onPreExecute() {
pd = ProgressDialog.show(MenuPrincipal.this, "", "Refreshing", true);
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
你试过HttpConnectionParams.setSoTimeout(params, timeout)吗? ConnectionTimout 是连接到您的 WebService 的超时,而 SoTimeout 是等待 answare。
我的AsyncTasks 用于调用网络服务。五,确切地说。每个 AsyncTask 在最后一个完成时开始。
我手上的AsyncTasks都正常,但有时AsyncTask没有结束。它永远持续下去。好像跟设备idle/locked有关,但我不能准确确认。
LogCat 没有显示错误。
我认为这可能与AsyncTask 语句或HttpCLient 语句有关。所以我将两者都留在这里:
//http client onCreate()
HttpParams httpParameters = new BasicHttpParams();
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
defaultClient = new DefaultHttpClient(httpParameters);
//AsyncTask declaration:
private class Async extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
//handles the webservice (with DOM)
return null;
}
@Override
protected void onPostExecute(String result) {
pd.dismiss();
//starts next Activity
}
@Override
protected void onPreExecute() {
pd = ProgressDialog.show(MenuPrincipal.this, "", "Refreshing", true);
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
你试过HttpConnectionParams.setSoTimeout(params, timeout)吗? ConnectionTimout 是连接到您的 WebService 的超时,而 SoTimeout 是等待 answare。