Application not Responding: Unterschied zwischen den Versionen

Details zu Verwendung von AsyncTask
(Details zu Verwendung von AsyncTask)
Zeile 11: Zeile 11:
== Technische Maßnahmen zur Vermeidung von ANR-Fehlern ==
== Technische Maßnahmen zur Vermeidung von ANR-Fehlern ==


Langlaufende Operationen, wie aufwändige Berechnungen oder Zugriffe über das Internet, sind in einem Hintergrund-Thread auszuführen. Bei der Android-Programmierung mit der Programmiersprache [[Wikipedia:de:Java|Java]] steht hierbei u. a. die Klasse ''android.os.AsyncTask''<ref>{{Cite web | url = https://developer.android.com/reference/android/os/AsyncTask.html | title = API-Dokumentation der Klasse ''android.os.AsyncTask'' | accessdate = 2016-06-25 |  publisher = developer.android.com (Offizielle Entwickler-Dokumentation für Android) | language = en}}</ref> zur Verfügung.
Langlaufende Operationen, wie aufwändige Berechnungen oder Zugriffe über das Internet, sind in einem Hintergrund-Thread auszuführen. Bei der Android-Programmierung mit der Programmiersprache [[Wikipedia:de:Java|Java]] steht hierbei u. a. die Klasse <code>[https://developer.android.com/reference/android/os/AsyncTask.html android.os.AsyncTask]</code> zur Verfügung. Diese Klasse hat u.a. die abstrakte Methode <code>[https://developer.android.com/reference/android/os/AsyncTask.html#doInBackground(Params...) doInBackground(Params...)]</code>, die so zu überschreiben ist, dass die langlaufende Operation in ihr enthalten ist. Nach Aufruf der Methode <code>[https://developer.android.com/reference/android/os/AsyncTask.html#execute(Params...) execute(Params...)]</code> an einer Instanz dieser Unterklasse wird diese Methode in einem Hintergrund-Thread ausgeführt. Sind nach Abarbeitung dieser Methode Ergebnisse auf der [[GUI]] der Android-App anzuzeigen, so können diese in der Methode <code>[https://developer.android.com/reference/android/os/AsyncTask.html#onPostExecute(Result) onPostExecute(Result)]</code> implementiert werden, welche im Main-Thread ausgeführt wird (der Zugriff auf die GUI aus einem Hintergrund-Thread heraus ist nicht zulässig und führt zur sofortigen Beendigung der App).  


== Einzelnachweise ==
== Einzelnachweise ==
<references />
<references />
Autopatrol, Moderator
1.304

Bearbeitungen