在将android:targetSdkVersion设置为大于10时,Android上的HTTP请求变慢

3
我遇到一个奇怪的问题。在没有设置android:targetSdkVersion的情况下,我的http请求需要1到2秒才能完成; 但是如果设置android:targetSdkVersion ="16",则请求需要20到30秒才能完成!我记录了请求开始时的日志,并注意到当我启动Activity时,系统会保持空闲状态,直到进行请求。所有的请求都在AsyncTask中运行。以下是代码:
BasicHttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, HTTP_POST_CONNECTION_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParameters, HTTP_POST_SOCKET_CONNECTION_TIMEOUT);
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Accept-Encoding", "gzip");
HttpClient httpClient = new DefaultHttpClient(httpParameters);
...
HttpResponse response = httpClient.execute(request);

谢谢你!


我进行了测试,发现在 android:targetSdkVersion >= 13 上出现了这种情况。 - Alexandre Atoji
尝试使用HTTPURLConnection取代HTTPClient。 - Manikandan
1个回答

0

通常情况下,您不应在Android中使用DefaultHttpClient。请尝试使用AndroidHttpClient。它包含了针对移动设备的多个更改和改进,因此可能会有所帮助。


似乎某些针对android:targetSdkVersion="16"的优化设置正在导致一些“锁定”问题。 - Alexandre Atoji
这个在哪里有文档记录? - Tomer Peled

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接