My AsyncTasks用于调用web服务。准确地说是五个。每个AsyncTask在最后一个完成时启动。
我拥有的AsyncTask都能正常工作,但有时AsyncTask不会结束。它会一直持续下去。这似乎与设备处于空闲/锁定状态有关,但我无法准确确认。
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是等待应答软件的超时。