Читать книгу Android App Entwicklung für Dummies - Burton Michael - Страница 14

Teil I
Android-Grundlagen
1
Spektakuläre Android-Apps entwickeln
Grundlagen der Android-Programmierung
Hintergrundoperationen

Оглавление

In Android gibt es verschiedene Möglichkeiten, mehrere Operationen gleichzeitig ausführen zu lassen, ohne selbst Threads verwalten zu müssen (was jedoch generell nicht zu empfehlen ist). Wenn Sie Daten aus einer Datenbank laden, um diese auf dem Bildschirm anzuzeigen, verwenden Sie im Allgemeinen Loader. Loader übernehmen die Verwaltung der Hintergrund-Threads für Sie und überwachen außerdem Ihre Datenbank auf Änderungen, sodass Ihre Benutzeroberfläche aktualisiert wird, sobald sich Daten ändern. Weitere Informationen über Loader finden Sie in Kapitel 13.

Für andere Hintergrundoperationen könnten Sie beispielsweise die Klasse AsyncTask verwenden, um eine Operation als Hintergrund-Thread auszuführen. Mit AsyncTask können Sie einen Task im Hintergrund starten und sein Ergebnis an Ihren Vordergrund-Thread weitergeben, sodass Sie Ihre Benutzeroberfläche aktualisieren können. Damit erhalten Sie ein sauberes Programmiermodell für die asynchrone Verarbeitung.

Mithilfe von Threads können Sie auf einem Gerät mehrere Anweisungsmengen gleichzeitig ausführen. Sie verwenden alle denselben Speicher und dieselbe CPU, aber wenn ein Thread unterbrochen wird, weil er beispielsweise auf etwas anderes wartet, können andere Threads fortgesetzt werden, damit die CPU immer etwas zu tun hat.

Die asynchrone Verarbeitung sollten Sie für Tasks nutzen, deren Ausführung länger als nur ein paar Sekundenbruchteile dauert, also beispielsweise für die Netzwerkkommunikation (Internet) oder das Lesen/Schreiben von Daten auf Speichermedien. Wenn die Anwender auf die Ergebnisse Ihres Tasks warten müssen, sollten Sie einen asynchronen Aufruf und ein Element auf der Benutzeroberfläche verwenden, um ihnen mitzuteilen, dass gerade irgendetwas passiert.

Wenn Sie kein asynchrones Programmiermodell nutzen, könnten Anwender Ihre App (berechtigterweise) für fehlerhaft halten. Es dauert beispielsweise ein wenig, die neuesten Twitter-Mitteilungen aus dem Internet herunterzuladen. Wenn das Netzwerk stark ausgelastet ist und Ihre App nicht asynchron arbeitet, hängt sie scheinbar und reagiert nicht mehr auf Eingaben, woraufhin Anwender meinen könnten, dass ein Fehler aufgetreten ist. Wenn eine App nicht innerhalb eines angemessenen Zeitrahmens reagiert, wird ein Dialogfeld angezeigt, das den Anwender darüber informiert, dass die App nicht mehr reagiert (siehe Abbildung 1.2). Dann kann der Anwender entscheiden, ob er die App schließen oder auf ihre Wiederherstellung warten will. Größtenteils klicken die Benutzer auf OK und schließen Ihre App.

Abbildung 1.2: Hier wird gemeldet, dass eine App nicht mehr reagiert.


Am besten betten Sie CPU-lastigen oder länger laufenden Code in einen anderen Thread ein. Die Vorgehensweise wird auf der Seite Keeping Your App Responsive auf der Website für Android-Entwickler unter http://d.android.com/guide/practices/design/responsiveness.html beschrieben.

Android App Entwicklung für Dummies

Подняться наверх