В настоящее время я работаю над приложением для Android, которое включает в себя функцию загрузки HTML-кода. Однако выполнение через HttpClient происходит очень медленно и занимает около 12 секунд для страницы, которая загружается через 1 или 2 секунды через браузер телефона. Я уже пробовал использовать HttpURLConnection, но он загружает код примерно в одно и то же время. Что бы вы мне помогли изменить?Android HttpClient SLOW
public class Downloader extends AsyncTask<String, Void, String>
{
protected String doInBackground(String... params)
{
String url = params[0];
String htmlcode = "FAIL";
try{
Log.i("METAMETER","DL: INITIALIZING");
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpParams httpParameters = client.getParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 1000);
HttpConnectionParams.setSoTimeout(httpParameters, 1000);
Log.i("METAMETER","DL: EXECUTING");
HttpResponse response = client.execute(request);
//Apparently the step above takes about 12 seconds for a page which only takes 1-2 seconds via browser
Log.i("METAMETER","DL: WRITING");
htmlcode = EntityUtils.toString(response.getEntity());
}catch (Exception e){htmlcode = "EXCEPTION";}
Log.i("METAMETER","DL: DONE");
return htmlcode;
}
}
Я рекомендую вам использовать TraceView и точно определить, где ваша проблема. – CommonsWare
Хорошо, я просто использовал Traceview в первый раз, что вы хотите узнать? – user3198121
Я вижу, что есть 9-секундный промежуток, пока AsyncTask не начнет работать. В этот период никакой активности нет. После этого AsyncTask работает в течение 1,5 секунд. Однако здесь также много мелких пробелов. – user3198121