Hirdetés
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen billentyűzetet vegyek?
- 5.1, 7.1 és gamer fejhallgatók
- Múltidéző, bézs toronyházakkal villant a Thermaltake
- Kompakt vízhűtés
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Vezeték nélküli fejhallgatók
- Régi CPU újrakiadásával ünnepelné a Socket AM4 tizedik évfordulóját az AMD
- Milyen belső merevlemezt vegyek?
Ú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
- Kerékpárosok, bringások ide!
- Crimson Desert
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Google Pixel topik
- Microsoft Rewards
- PlayStation 5
- Mobil flották
- The Division 2 (PC, XO, PS4)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- További aktív témák...
- Corsair Ironclaw RGB Bolti ár:23k INGYEN FOXPOST
- GIGABYTE Z790 EAGLE +32GB 6400-7600MHz hűtőbordás DDR5 memóriakit eladó! GAR/SZÁMLA (a Te nevedre)!
- Corsair Harpoon RGB Bolti ár:25k INGYEN FOXPOST
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5600XT / RTX 3070 / 16GB DDR4 / 512GB Nvme SSD
- Asus TUF FX504GD 15.6" FHD IPS i7-8750H GTX 1050 16GB 512GB NVMe + 1TB HDD gar
- Eladó Vivo Y19S 6/128GB fehér / 12 hónap jótállás
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Asus Rog Ally Z1 Extreme 6 hó garancia, számlával!
- Gamer PC - Számítógép // i7 // GTX 1060 // Számla // Garancia //
- HP ProBook 445 G10 14" Ryzen 5 7530U, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

