Hirdetés

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

  • pittbaba
    aktív tag

    Hogy az előző hozzászólást folytassam:
    Én az onPreExec.-ben, vagy a háttérszál legelején (tehát nem az activity-ban!) kérném el, ami már megvan (sqlite lekérdezés). Ezt, ill. a netről érkező adatokat folyamatosan szedném össze, és alkalmanként az onProgressUpdate megjelenítené azokat, ill. jelezné, h. tart a folyamat. Az onPostExecute csak annyit tesz a képhez, hogy "oké, minden adat kirajzolva!"
    Ha nincs pl. Wifi, akkor a háttérszál (hiba nélkül!!) befejezi a futást, és valahol kiírja, hogy "nincs net". Ez az az eset, amikor a háttérszál RENDBEN lefut, de a számítás "HIBÁS".
    Valahova odateszel egy gombot, hogy frissítés, és akkor - ha éppen nem fut - újraindítja az egészet. Vagy, ha gondolod, időnként - ha éppen nem fut - újraindítja az egészet. Én ez utóbbit kissé "költségesnek érzem", ha látom, hol a busz, nem vagyok kíváncsi arra, hol lesz 10 mp múlva. Vagy legalábbis 3g-n nem, ami a buszmegállóban azért valószínű.

    Másik ötlet: a lekérések service-ként futnak, amik időnként szólnak a fő programnak, hogy ezt vagy azt írjon ki. Itt talán könnyebb a kettőnél több folyamat indítása, ill. az időzítés; de ezzel nincs sok tapasztalatom. Azt sokan írták, hogy AsyncTask helyett többnyire service-ben gondolkodnak.

    :) Én is gratulálok a BKV kezdeményezéshez, én már a hétvégén ajánlgattam Pesten, h. létezik ilyen (csak nem találtam). Ezek szerint egy kicsit még várni kell rá... De jó lesz nagyon! Hátha még azt is megmondja, hogy egy nagy téren a 8 állásból melyikből indul az én buszom... ((Pestiek előnyben, én szegény vidéki GPS-sel közlekedem))

    Úúú! csak lemaradtam egy kérdésről. Ami lejárt az a ProgressDialog. Sztem., ettől függetlenül prímán működik, de lecserélhető akár Fragment-re is. Csak az olyan összetetté tenné a kódot, hogy a lényeg eltűnne, ezért maradtam a "régi" megoldásnál. Meg azért is, mert én 5 hüvelyken élek, semmi szükségem (még) a fragmentekre, majd a Note 8"-en :K !
    Az érték megőrzés másra vonatkozik: a végeredményt az AsyncTask osztályváltozója tárolja. Ha törlöd a mutatóját, akkor elveszik a végeredmény is. De egyébként az AsyncTask nem indítható ugyan újra, de nem veszik el (az eredmény sem), amíg új példányt nem indítasz.
    Jól értettem a kérdést?

    Én itt élek Pesten évek óta, de nem itt nőttem fel, így ez a funkció lesz, igazából pont erre építem az alap szerkezetet. Jó lenne, valami irányzék is, hogy pontosan helyileg oda tudjon menni a user a megállóba, de az később, a kiadott adatbázis amúgy sem a legpontosabb eddigi tapasztalat szerint, de majd.. ez még új dolog :)

    A kérdésem erre a részre vonatkozott:
    Ezen a ponton átalakítottuk a belső TimeConsumingTask osztályt static típusúvá, vagyis egyetlen timeConsumingTask létezhet. Hogyan tudnánk ezt megőrizni, miközben az UI-szálon futó alkalmazásunk újraindul? Az Alkalmazkodjunk az új környezethez! Felületi változások c. cikkben már beszéltünk az onRetainNonConfigurationInstance() metódusról, mellyel egy értéket meg tudunk őrizni a program újraindulása alatt. ((Megjegyzendő, hogy ezt a módszert a Honeycomb rendszertől kezdve érvénytelenítették. Az új módszer azonban a Fragment-ek beható ismeretét igényli, ezzel később (ha a gépünket Jelly Bean-re frissítettük) részletesen foglalkozunk.))

    Én is a frissítés gombra gondoltam megoldásnak, csak nem tudom érteni fogja e a user magától, hogy ha nincs indulási időpont, akkor neki a frissítés gombot kell nyomkodnia, de kitalálom.

    Galaxy S2-n meg mini-n tesztelek, még én sem foglalkoztam a tablet méretekkel..

    És még valami: Én külön fájlba vettem az Async osztályomat, nem engedi static-ra rakni, hogy ne fusson több egyszerre, azt a hívó activity async startoló metódusában csekkoljam indítás előtt?

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