Hirdetés
Ú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
- 3D nyomtatás
- Digitális Állampolgárság Program DÁP
- Elképzelhetetlen sebességre kapcsolt az Anthropic
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- Hálózati / IP kamera
- Telekom mobilszolgáltatások
- MasterDeeJay: Legújabb retró beszerzésem - 3Dfx Voodoo4 4500 32Mb
- Szintet lép a Xiaomi Apple másolásban?
- Nyaralás topik
- További aktív témák...
- Eladó egy hibátlan állapotú Motorola razr 2022 8/256gb fekete készülék
- Eladó egy bontatlan Nintendo Switch Oled White Super Mario kiadás
- Eladó egy hűtőbordás, Corsair Force MP600, NVMe Gen4 500GB-os SSD!
- ELADÓ: 8GB SKHynix 2400MHz DDR4 SODIMM (laptop) memória (+gari/számlás)
- GAINWARD PYTHON III RTX 5070 12GB GDDR7! 3 VENTIS! GARANCIA/SZÁMLA (a Te nevedre kiállítva)!
- Eladó Samsung Galaxy A16 5G 4/128GB fehér / 12 hó jótállás
- Szuper áron eladó Lenovo ThinkPad T14 Gen 1 /Ryzen 7 PRO 4750U/16GB/512 SSD/FHD/IPS
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- BESZÁMÍTÁS! Sapphire B650M R7 8700F 32GB DDR5 1TB SSD RX 9070 XT 16GB CM MasterBox 5 fehér 750W
- Szuper áron eladó Honor MagicBook 16 Series /Ryzen5-5600H/16GB/512 SSD/FHD/IPS/144Hz
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest
Amíg simogatja, elodázza a végzetét.

