Download (11Mb)
Download (11Mb)
Download (11Mb)
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