- Apple Watch
- Árat emel a Vivo és az iQOO Kínában
- One mobilszolgáltatások
- Redmi Note 12 Pro - nem tolták túl
- Xiaomi 17 Ultra - jó az optikája
- Alumíniumba öltözött a Nothing Phone (4a) Pro
- Huawei P30 Pro - teletalálat
- Okosóra és okoskiegészítő topik
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- iPhone topik
Ú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
- Gitáros topic
- Renault, Dacia topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Apple Watch
- Gyúrósok ide!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Energiaital topic
- Amlogic S905, S912 processzoros készülékek
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- 27% - GIGABYTE MO34WQC2 Karcos OLED Monitor! 3440x1440 / 240hz / 0.03ms / FreeSync!
- Lenovo ThinkPad T15 G1 laptop i7, 16GB RAM, 512GB SSD, 1 év garancia Magyar billentyűzet
- Playstation 4 VR V2 eladó!
- Dell Pro 14 PC14250 14" FHD+ IPS érintő Ultra 5 235U 16GB 256GB NVMe ujjlolv IR kam gar
- ELADÓ Radtel RT-920 (10W, CB sáv) többsávos kézi amatőr adóvevő
- Nvidia Quadro P400/ P620/ P1000/ T400/ T1000 - Low profile (LP) + RTX A2000 6/12Gb
- Samsung SyncMaster EX2220 Monitor kisfogyasztású Full HD LED monitor
- Wacom Bamboo One CTF-430 rajztábla
- BESZÁMÍTÁS! ASRock Phantom Gaming RX 7900XTX 24GB garanciával hibátlan működéssel
- Apple iPhone 15 128GB Bontatlan Független Összes szín / 27% áfás ár
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Amíg simogatja, elodázza a végzetét.
