Hirdetés
- joghurt: Megtarthatod a jogsid?
- bkercso: Társadalmi stabilitás az AI szemszögéből
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Magga: PLEX: multimédia az egész lakásban
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Luck Dragon: Asszociációs játék. :)
- Syl: UPS - te áldott!
Új hozzászólás Aktív témák
-
thon73
tag
válasz
pittbaba
#526
üzenetére
Nem tértem ki, mert eddig ez a probléma nem tűnt fel. Ahol én idáig AsynTask-ot használtam (nem csak a cikkekben szerplő programokban), ott a program célja mindig egy önálló, de nagyon hosszú számítás volt. Ezt általában kiírta file-ba, és azzal már egy következő program (vagy programrész) dolgozott.
Az én esetemben az "eredmény" - vagyis, hogy a kiírás megtörtént - az onPostExecute (pontosabban updateUI) metódusban került kiírásra egy UI elembe. Már, ha volt ilyen. Mindenesetre tovább gondolkodtam.Az onPostExecute egyébként UI szálon van, tehát simán meghívhat, írhat, bármit csinálhat - ha éppen létezik a fő Activity. ((Márpedig itt nagy valószínűséggel léteznie kell, mert mindketten ugyanabban a szálban futnak, tehát amíg az activity az újraindulással van elfoglalva, addig nem futhat az onPostExecute, ha meg ő fut, akkor az Activity nem tud újraindulni.)) Én azt tenném, hogy innen (onPostExecute) meghívnám (vagyis triggerelném) a fő Activity egy metódusát (érdemes azért ellenőrizni, hogy éppen létezik-e). Ez tulajdonképp egy Listener lesz, amit pl. a konstruktorban át is lehet adni. Ez igen egyszerű, és ugyanúgy fog működni, mint ahogy pl. egy gomb lenyomásakor elsül az onClick metódus. Mégis kell egy AsyncTask osztályváltozóban jelezni, hogy már van kész eredmény, mert ha ez megvan (tehát van már elindított AsyncTask és van már eredmény is), akkor a fő Activity (újra)indulás után nem az AsyncTask indítása felé mozdul, hanem a további számítás felé. Bár ilyenkor már a számítás megkezdődött, tehát látni fogod, hogy kiszállt és újraindult a program. De mégsem kell mégegyszer lefuttatni a teljes AsyncTask-ot.
B. (lehet egyszerűbb, csak kevésbé felhasználóbarát) verzió: az onPostExecute felfed egy gombot, ami tájékoztatja a felhasználót, hogy "Oké, megvagyok, mehetünk tovább!". (Megteheti, hiszen UI szálon van!) És azt megnyomva ugrik a végrehajtásra.A másik kérdésre válaszolva: minden AsyncTask-nál el kell készíteni a keretet. Ha csak a paraméterekben van változás (vagyis nagyjából ugyanazt végzi el, még ha egyszer pl. szöveget, máskor meg képet tölt is le), akkor sztem. elegendő egy AsyncTask-ot készíteni, de gyökeresen más feladatokra kénytelen leszel újakat készíteni. Arra még mindig nem jöttem rá, ez mennyiben egyszerűsíti a programot. De biztos van oka, hogy ilyet csináltak.
Nagyon örülök, ha tetszett a cikk, amennyire időm engedi, folytatni fogom. A baj az, hogy most is egyszerre három projekttel (egy billentyűzet, egy adatbáziskezelő és egy könyvolvasó) bíbelődöm, (meg van egy negyedik készen), és mindig lemaradok az írással. De ha van, akit érdekel, akkor igyekezni fogok!
Új hozzászólás Aktív témák
Hirdetés
- ThinkPad (NEM IdeaPad)
- Mobil flották
- NFL és amerikai futball topik - Spoiler veszély!
- joghurt: Megtarthatod a jogsid?
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kerékpárosok, bringások ide!
- bkercso: Társadalmi stabilitás az AI szemszögéből
- Friss alaplapszériát avat az ASRock
- Allegro vélemények - tapasztalatok
- Milyen széket vegyek?
- További aktív témák...
- Honor Magic8 lite 512GB,Újszerű,Dobozaval,12 hónap garanciával
- Xiaomi Redmi Note 14 Pro+ 5G 512GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 12 Pro Max 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 14 128GB,Átlagos,Dobozaval,12 hónap garanciával
- Apple iPhone 13 Pro 128GB,Átlagos,Dobozaval,12 hónap garanciával
- Használt Apple iPhone 11 64GB / 12 hó jótállás
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- Lenovo 40AH és 40A1 dokkoló, töltő is.
- iPhone 17 256 GB Black - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

