![blackfire185](/data/avatars/s/74/74244.jpg,q1573221537.pagespeed.ce.j2iDy8Rpnk.jpg)
blackfire185
Stamm-User
- 40
Hallo,
da ich häufig hier im Forum mitlese und teilweise oft der gleichen Fehler gemacht werden, wollte ich hier mal ein Thema erstellen, in welchem diese Fehler genannt und behoben werden.
1. Internetverbindung im UI - Thread:
Es ist häufig der Fehler zu finden, dass man eine Verbindung zum Internet aufbaut und wenn man die App auf Gingerbread Geräten testet, läuft sie ohne Probleme, auf Geräten ab Android 3.0 gibt es einen Force Close. Dabei findet sich diese Meldung im Logcat:
Dies bedeutet, dass die Netzwerkoperation im UI-Thread durchgeführt wird. Dies sollte man nicht machen, denn wenn man in GPRS Netz unterwegs ist, reagiert die App -wenn die Internetoperation im UI Thread ausgeführt ist- sehr lange nicht, da diese darauf wartet, dass die Internetoperation fertiggestellt wird. Dauert dies länger als 5 Sekunden gibt es eine ANR Meldung.
Um dies zu verhindern, muss die Netzwerkoperation in einem separaten Thread durchgeführt werden.
Ab Android 3.0 ist es von Google "erzwungen", solche Vorgänge im Hintergrund durchzuführen, sonst gibt es eben den oben genannten Fehler
Gut eignen sich hierbei eine Async Task. Diese läuft im Hintergrund und wenn sie fertig ist (d.h. die Netzwerkoperation erfolgreich abgeschlossen wurde) kann sie auf die UI-Elemente zugreifen und diese aktualisieren.
Dies ist der Anfang, es wäre schön, wenn andere, die häufige Fehler sehen, die Liste ergänzen könnten (bitte mit fortlaufender Nummerierung).
Ich hoffe, dieses Thema hilft manchen und es wäre toll, wenn das Thema ein Sticky werden würde.
da ich häufig hier im Forum mitlese und teilweise oft der gleichen Fehler gemacht werden, wollte ich hier mal ein Thema erstellen, in welchem diese Fehler genannt und behoben werden.
1. Internetverbindung im UI - Thread:
Es ist häufig der Fehler zu finden, dass man eine Verbindung zum Internet aufbaut und wenn man die App auf Gingerbread Geräten testet, läuft sie ohne Probleme, auf Geräten ab Android 3.0 gibt es einen Force Close. Dabei findet sich diese Meldung im Logcat:
Code:
...
Caused by: android.os.NetworkOnMainThreadException
...
Dies bedeutet, dass die Netzwerkoperation im UI-Thread durchgeführt wird. Dies sollte man nicht machen, denn wenn man in GPRS Netz unterwegs ist, reagiert die App -wenn die Internetoperation im UI Thread ausgeführt ist- sehr lange nicht, da diese darauf wartet, dass die Internetoperation fertiggestellt wird. Dauert dies länger als 5 Sekunden gibt es eine ANR Meldung.
Um dies zu verhindern, muss die Netzwerkoperation in einem separaten Thread durchgeführt werden.
Ab Android 3.0 ist es von Google "erzwungen", solche Vorgänge im Hintergrund durchzuführen, sonst gibt es eben den oben genannten Fehler
Gut eignen sich hierbei eine Async Task. Diese läuft im Hintergrund und wenn sie fertig ist (d.h. die Netzwerkoperation erfolgreich abgeschlossen wurde) kann sie auf die UI-Elemente zugreifen und diese aktualisieren.
Dies ist der Anfang, es wäre schön, wenn andere, die häufige Fehler sehen, die Liste ergänzen könnten (bitte mit fortlaufender Nummerierung).
Ich hoffe, dieses Thema hilft manchen und es wäre toll, wenn das Thema ein Sticky werden würde.