httpurlconnection ist auf Android 4.2 sehr langsam
Ich kann über httpurlconnection erfolgreich eine Verbindung herstellen, Daten senden und empfangen. Es dauert jedoch sehr lange, bis alle Daten auf meinem Telefon (Samsung s4, 4.2) und dem Android 4.2-Emulator geladen sind. Aber es dauert fast 1-2 Sekunden (was sehr schnell ist), um Bilder auf dem Android 2.3.x Emulator zu laden. Schneller als mein Galaxy S4 auf http-Verbindung.
Ich verwende AsyncTask und mein Code funktioniert auf beiden. Es ist nur langsam auf Android 4.2s. Ich habe versucht, chunkedStreaming zu entfernen, am Leben zu bleiben, Timeout-Werte usw. zu ändern, aber immer noch keinen Erfolg
Hier ist mein Code
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();
Gibt es Unterschiede zwischen den httpurlconnections von 4.2 und 2.3.x? Was ist hier falsch?
AKTUALISIEREN!
Ich habe mit Log.e () getestet, welche Zeile die meiste Zeit benötigt.
///// 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");
Zwischen 3 und 4 vergehen 5-6 Sekunden auf der Linie
DataOutputStream outputStream = new DataOutputStream( urlConnection.getOutputStream() );
AKTUALISIEREN!!
Diese Wartezeit (siehe vorheriges Update) hängt mit dem urlConnection.setConnectTimeout (6000) zusammen.
Wenn ich Timeout 1000 mache, antwortet die Verbindung schnell (1 Sekunde auf die Leitung warten)
DataOutputStream outputStream = new DataOutputStream( urlConnection.getOutputStream() );
Keine Ahnung warum das passiert