httpurlconnection é muito lento no Android 4.2
Eu posso conectar com sucesso, enviar e receber dados usando httpurlconnection. Mas demora muito tempo para carregar todos os dados no meu telefone (Samsung s4, 4.2) e no emulador do Android 4.2. Mas demora quase 1-2 segundos (o que é muito rápido) para carregar fotos no emulador Android 2.3.x. Mais rápido que minha galáxia s4 em conexão http.
Estou usando o AsyncTask e meu código funciona bem em ambos. É apenas lento no Android 4.2s. Eu tentei remover chunkedStreaming, manter vivo, alterando valores de timeout etc. mas ainda sem sucesso
Aqui está meu código
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setUseCaches(false);
urlConnection.setChunkedStreamingMode(0);
urlConnection.setRequestProperty("Connection", "Keep-Alive");
urlConnection.setConnectTimeout(6000);
urlConnection.setReadTimeout(6000);
urlConnection.setRequestProperty("Content-Type", "multipart/form-data;charset=UTF-8;boundary="+boundary);
urlConnection.connect();
Há alguma diferença entre as conexões de URL da 4.2 e da 2.3.x? O que está errado aqui
ATUALIZAR!
Eu testei usando Log.e () para ver qual linha leva mais tempo.
///// other staff
////......
Log.e("HTTP","3");
if (isCancelled())
return (null); // don't forget to terminate this method
Log.e("HTTP","3");
//Output
DataOutputStream outputStream = new DataOutputStream( urlConnection.getOutputStream() );
//Send Passcode
Log.e("HTTP","4");
Entre 3 e 4, 5-6 segundo passa na linha
DataOutputStream outputStream = new DataOutputStream( urlConnection.getOutputStream() );
ATUALIZAR!!
Esse tempo de espera (veja a atualização anterior) está relacionado ao urlConnection.setConnectTimeout (6000);
Quando eu faço Timeout 1000, então respostas de conexão rapidamente (esperando 1 segundo pela linha)
DataOutputStream outputStream = new DataOutputStream( urlConnection.getOutputStream() );
Não sei por que isso está acontecendo