Hirdetés
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: Philips AWP9820 (vízlágyító) Calgon helyett?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Krumple: [Xpenology] DSM 7.3 telepítése proxmox 9 alatt - GUIval
- nézzbe: AM3 hűtés s478-ra
- pointer4: Force Feedback az ülésben is - Házi Készítésű Övfeszítő
- Real Racing 3 - Freemium csoda
- Samus: Oldschool játékos konfig a memóriaválság idején
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
Karma
félisten
"Akkor a custom View osztályban lesz egy mHandler = new Handler(); rész. Ha jól értem, ez rácsatlakozik az UI thread által létrehozott looper-re."
Igen és igen.
Hogyan tudom ezt az egészet megállítani? Kiadok egy mHandler.removeCallbacks() utasítást?
Igen. Ha megnézed a metódus szignatúráját, láthatod, hogy meg kell adni azt a Runnable példányt, aminek az ütemezését vissza akarod vonni.
"1. De mi lesz ebben a runnable? Vagy egy runnable-vel meg tudom csinálni a fenti sort?"
Ha kicsit konkretizáltad volna, hogy mit csinál a View-d és miért kell hozzá két ütem, nem kellene ennyire a levegőbe beszélnünk. Mindenesetre az biztos, hogy a késleltetett kódrészlete(ke)t ki kell raknod tagváltozó(k)ba, mert így tudsz a konkrét Runnable példányokra hivatkozni - melyek egyébként tipikusan lambdák vagy anoním osztályok.
Például (kicsit pszeudokód lesz, mert most nincs előttem IDE):
private Handler mHandler = new Handler();
private Runnable mDelayedStep = new Runnable() {
public void run() {
Log.w(TAG, "BOOM!");
}
};
public boolean onTouch(View v, MotionEvent event) {
mHandler.removeCallbacks(mDelayedStep);
mHandler.postDelayed(mDelayedStep, 5000);
return true;
}És ezzel írtál is egy mini játékot, amiben akkor robban a bomba, ha a felhasználó öt másodpercig nem nyúl a telefonhoz
Amíg simogatja, elodázza a végzetét.Retrolambdával egyébként egy kicsit tömörebb:
private Runnable mDelayedStep = () -> Log.w(TAG, "BOOM!");2. Azonnal megáll a végrehajtás, vagy a következő "tick" még lefut?
Azonnal hat, tehát nem fog lefutni, amit kivettél.
3. Ha leállítom, akkor rögtön indíthatok egy ugyanilyen ütemet, ugyanezekkel a példányokkal?
Persze. Sőt, ha az lenne az igény, egy Runnable-t többször is beütemezhetsz, mert a message queue-ba többször is bekerülhet ugyanaz a példány. Fontos megjegyezni, hogy a removeCallbacks az összes hozzá tartozó üzenetet kiveszi.
Új hozzászólás Aktív témák
Hirdetés
- Windows 11
- Windows 10
- Azonnali VGA-s kérdések órája
- Alaposan helyretette az AI ellenzőit az NVIDIA vezetője
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- Milyen széket vegyek?
- Vezeték nélküli fejhallgatók
- Nintendo Switch 2
- Kerékpárosok, bringások ide!
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- Samsung Galaxy XCover 5 / 4/64GB / Kártyafüggetlen / 12Hó Garancia
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 512GB 1 év teljeskörű garancia
- HP 150W töltők (19.5V 7.7A) kis kék, kerek, 4.5x3.0mm
- 204 - Lenovo Legion Slim 5 (14APH8) - AMD Ryzen 7 7840HS, RTX 4060 (ELKELT)
- GYÖNYÖRŰ iPhone 14 Pro 128GB Deep Purple-1 ÉV GARANCIA - Kártyafüggetlen, MS4237,100% Akksi
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Amíg simogatja, elodázza a végzetét.
