Application not Responding: Unterschied zwischen den Versionen

Keine Änderung der Größe ,  25. Juni 2016
K
Bindestrich eingefügt
Keine Bearbeitungszusammenfassung
K (Bindestrich eingefügt)
Zeile 5: Zeile 5:
Eine solche Fehlersitaution entsteht meist dadurch, dass die App in der Event-Handler-Methode (Ereignisbehandlungs-Methode) eines [[GUI]]-Elements (z.B. Button) Programmcode ausführt, der mehrere Sekunden zur Abarbeitung benötigt (z.B. aufwändige Berechnung oder I/O-Zugriff, besonders beim ''Internet''-Zugriff). Solche Event-Handler-Methoden werden vom sog. Main-Thread ausgeführt, der u.a. auch für die Aktualisierung der GUI sowie die Abarbeitung von GUI-Ereignissen zuständig ist. Da es nur einen Main-Thread gibt, blockiert die GUI, wenn der Main-Thread eine Event-Handler-Methode ausführt, die mehrere Sekunden zur Abarbeitung benötigt.<ref>{{Cite web | url = https://developer.android.com/training/articles/perf-anr.html| title = Keeping Your App Responsive | accessdate = 2016-06-25 | publisher = developer.android.com (Offifizielle Entwickler-Dokumentation für Android | language = en }}</ref>
Eine solche Fehlersitaution entsteht meist dadurch, dass die App in der Event-Handler-Methode (Ereignisbehandlungs-Methode) eines [[GUI]]-Elements (z.B. Button) Programmcode ausführt, der mehrere Sekunden zur Abarbeitung benötigt (z.B. aufwändige Berechnung oder I/O-Zugriff, besonders beim ''Internet''-Zugriff). Solche Event-Handler-Methoden werden vom sog. Main-Thread ausgeführt, der u.a. auch für die Aktualisierung der GUI sowie die Abarbeitung von GUI-Ereignissen zuständig ist. Da es nur einen Main-Thread gibt, blockiert die GUI, wenn der Main-Thread eine Event-Handler-Methode ausführt, die mehrere Sekunden zur Abarbeitung benötigt.<ref>{{Cite web | url = https://developer.android.com/training/articles/perf-anr.html| title = Keeping Your App Responsive | accessdate = 2016-06-25 | publisher = developer.android.com (Offifizielle Entwickler-Dokumentation für Android | language = en }}</ref>


Android überwacht das Reaktionsverhalten durch die System-Dienste ''Activity Manager'' und ''Window Manager''. Ein ANR Dialog wird angezeigt, wenn eine der folgenden Bedingungen erfüllt ist:
Android überwacht das Reaktionsverhalten durch die System-Dienste ''Activity Manager'' und ''Window Manager''. Ein ANR-Dialog wird angezeigt, wenn eine der folgenden Bedingungen erfüllt ist:
* keine Reaktion zu einem Eingabe-Ereignis (zum Beispiel das Drücken einer Taste oder ein Touchscreen-Ereignis) innerhalb von 5 Sekunden
* keine Reaktion zu einem Eingabe-Ereignis (zum Beispiel das Drücken einer Taste oder ein Touchscreen-Ereignis) innerhalb von 5 Sekunden
* ein <code>[https://developer.android.com/reference/android/content/BroadcastReceiver.html BroadcastReceiver]</code> wurde nicht innerhalb von 10 Sekunden beendet
* ein <code>[https://developer.android.com/reference/android/content/BroadcastReceiver.html BroadcastReceiver]</code> wurde nicht innerhalb von 10 Sekunden beendet
Autopatrol, Moderator
1.304

Bearbeitungen