Kursory i zadania asynchroniczne
729
jesteś tutaj
Parametry klasy AsyncTask
Kiedy po raz pierwszy przedstawialiśmy klasę
AsyncTask
, napisaliśmy, że jest
ona definiowana przez trzy parametry ogólne:
Params
,
Progress
oraz
Results
.
Określiliśmy je na podstawie typów parametrów metod
doInBackground()
,
onProgressUpdate()
oraz
onPostExecute()
.
Params
to typ parametrów metody
doInBackground()
,
Progress
jest typem parametrów metody
onProgressUpdate()
,
a
Result
— typem parametru metody
onPostExecute()
:
W naszym przykładzie metoda
doInBackground()
ma parametry typu
Integer
, metoda
onPostExecute()
— parametr typu
Boolean
, a metody
onProgressUpdate()
nie używamy.
A to oznacza, że w naszym przypadku parametrem typu
Params
jest
Integer
, parametrem
typu
Progress
jest
Void
, a parametrem typu
Result
—
Boolean
:
private class MyAsyncTask extends AsyncTask<Params, Progress, Result>
protected void onPreExecute() {
// Kod, który ma zostać wykonany przed rozpoczęciem zadania
}
protected Result doInBackground(Params... params) {
// Kod, który ma zostać wykonany w wątku działającym w tle
}
protected void onProgressUpdate(Progress... values) {
// Kod pozwalający na publikowanie informacji o postępach prac
}
protected void onPostExecute(Result result) {
// Kod, który ma zostać wykonany po zakończeniu zadania
}
}
Teraz już wiesz wszystko, co trzeba, by utworzyć zadanie — przekonajmy się zatem,
jak takie zadanie można wykonać.
private class UpdateDrinkTask extends AsyncTask<Integer, Void, Boolean> {
...
protected Boolean doInBackground(Integer... drinks) {
...
}
protected void onPostExecute(Boolean... success) {
...
}
}
Tym parametrem typu jest Void,
gdyż metody onProgressUpdate()
nie implementujemy.
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.