Application not Responding: Unterschied zwischen den Versionen
Md 42 (Diskussion | Beiträge) ANR-Fehler werden in der Developer-Console für den GooglePlay-Store angezeigt |
Md 42 (Diskussion | Beiträge) K Link auf Wikipedia-Seite zu "Java" angepasst |
||
Zeile 13: | Zeile 13: | ||
== 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: | 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_(Programmiersprache)|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 /> |