29.11.2014 Aufrufe

Download (11Mb)

Download (11Mb)

Download (11Mb)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

FireTablet<br />

2 Technische Rahmenbedingungen<br />

2.3.4 AsyncTasks<br />

AsyncTask ist eine Hilfsklasse des Androidframeworks, die das Zusammenspiel von Activities<br />

und Threads vereinfachen. [Painless Threading] Man verwendet Threads um das<br />

Userinterface ansprechbar zu halten, während länger dauernde Aktionen in Bearbeitung<br />

sind. Dies können Datenbankzugriffe oder Abfragen über das Netzwerk sein. Würden diese<br />

Aktionen im gleichen Thread ablaufen wie das Gui, würde dieses in der Zeit, in der z.B<br />

eine Netzwerkabfrage stattfindet, nicht reagieren. Darum lagert man grössere Aktionen in<br />

eigene Threads aus, die dann parallel zum Userinterface ablaufen.<br />

AsyncTasks kapseln den eben beschriebenen Vorgang, indem sie verschiedene Hilfsmethoden<br />

zur Verfügung stellen. Die Wichtigste ist doInBackground(). Diese Methode wird<br />

überschrieben mit dem Code, der in einem separaten Thread ausgeführt werden soll. Alle<br />

anderen Funktionen werden wieder im gleichen Thread der Activity ausgeführt. Die<br />

Methoden sind:<br />

• onCancelled()<br />

• onPostExecute(Result result)<br />

• onPreExecute()<br />

• onProgressUpdate(Progress... values)<br />

Je nach Methode wird der Code vor, nach oder zwischen der doInBackground() Methode<br />

ausgeführt.<br />

Beim Erstellen eines AsyncTask können drei Generics bestimmt werden. Ein Übergabeparameter<br />

für die doInBackground(), ein Parameter für onProgressUpdate() und einer für<br />

onPostExecute(). So kann ein AsyncTask optimal an die aktuellen Bedürfnisse angepasst<br />

werden und ist somit sehr generisch.<br />

AsyncTasks werden zum Beispiel dafür verwendet, um Fortschrittsanzeigen zu aktualisieren.<br />

Dabei läuft ein Prozess ab, der immer an einer gewissen Stelle die Methode onProgressUpdate()<br />

aufruft, die dann im Gui-Thread die Fortschrittsanzeige aktualisiert.<br />

2.3.5 Parcelable<br />

Objekte, die Parcelable implementieren, können mit Intents verschickt werden. Diese Objekte<br />

werden von Android serialisiert und müssen dazu ein paar Funktionen besitzen, die<br />

beim Serialisieren und Deserialisieren helfen. [Parcelable Reference]<br />

Page 24 of 98

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!