Hirdetés

Új hozzászólás Aktív témák

  • thon73

    tag

    válasz domel #3880 üzenetére

    Hát én pont azért kezdtem el (újra) programozni, mert nem találtam senkit, aki helyettem - pénzért - megcsinálja. Egyébként meg igen drága.

    Fel a fejjel! Fog az menni, csak legyél türelmetes! :K

    A világ legelvarázsoltabb service-vel játszom egy ideje, a billentyűzetvezérlővel, úgyhogy az android csavarjait nekem nem kell bemutatni. A jó hír: megy benne a háttérszál! A rossz: az asynctask még a service-nél is hülyébb állatfaj.
    EZT olvasd végig, ha gondolod. Régi, de segíteni fog az asynctask megértésében. Elküldöm a készülő kódot is szívesen, de kicsit nagyra nőtt, nehéz benne bogarászni.

    A lényeg:
    A Service megvalósít egy Listener-t, amin keresztül az AsyncTask tudja jelezni az eredményt.
    Ezt a Listener-t az AsyncTask konstruktorában adom át, vagyis magát a service-t.
    A Service meghívja .execute-tal az AsyncTask-ot, de a sikeres lefutást már a Listener-ben meghatározott metódusok kezelik le, amiket az AsyncTask onPostExecute metódusa hív meg.
    Ez a szűk lényeg, mert az Asynctask előnye, hogy látod, hogy hol tart; ad visszajelzést a hibáról; és persze meg lehet szakítani. Épp csak ezeket is mind fel kell programozni, bár a terep elő van készítve.

    Internetet még nem használtam (mármint közvetlenül a programból), de az biztos, hogy az UI szál erre tiltott. Azt, hogy pontosan milyen módon teszed háttérbe a feladatot (AsyncTask, Loader, Service, Thread stb.) mérlegelni kell, de az AsyncTask-ot mindenképp érdemes behatóan ismerni.

Új hozzászólás Aktív témák