- Apple MacBook
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- Nvidia GPU-k jövője - amit tudni vélünk
- Ismét analóg billentyűzettel jelentkezett a Cherry Xtrfy
- Apple iPad 11” (A16, 2025) - a táblagépek vanília fagylaltja
- TCL LCD és LED TV-k
- Amazon Kindle
- Gaming notebook topik
- OLED monitor topic
- Fejhallgató erősítő és DAC 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
- Apple MacBook
- PlayStation 1 / 2
- Renault, Dacia topik
- exHWSW - Értünk mindenhez IS
- A fociról könnyedén, egy baráti társaságban
- Crimson Desert
- Elemlámpa, zseblámpa
- Óra topik
- Samsung Galaxy Felhasználók OFF topicja
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- További aktív témák...
- Lenovo Yoga Tab 11 4/128 YT-J706X LTE STORM GRAY
- MacBook Pro 15 Mid 2015 i7 / 16GB RAM / 256GB SSD
- ÚJ ASUS GAMER ERŐMŰ PC RYZEN 7 7800X3D 32Gb DDR5 1.0TB SSD ÚJ ASUS PRIME RTX 5070 12Gb DDR7 2ÉV GAR!
- HIBÁS - Lenovo ideapad 320-15IAP
- ÚJ ASUS B550 AMD RYZEN 5 5600X GAMER MAX PC 32Gb RAM 512GB SSD NVIDIA RTX 3070TI 8GB DDR6 2ÉV GAR!
- Honor 200 Pro 512GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Intel Core i9 9900K 8 mag 16 szál processzor garanciával hibátlan működéssel
- 27% - Passzív MiniPC! Intel Core i5-8350U / 16GB DDR4 / 512GB NVMe SSD!
- Új Dell Inspiron 14 Plus 7440 WQHD 2.8K 90Hz Ultra7 155H 32GB 1TB SSD Intel Arc iGPU Win11 Garancia
- Keresünk Galaxy S22/S22+/S22 Ultra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Amíg simogatja, elodázza a végzetét.
