Hirdetés
- mefistofeles: Az elhízás nem akaratgyengeség!
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- gerner1
- Klaus Duran: RCS
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Szólánc.
- GoodSpeed: Daikin FTXF35E / RXF35F Sensira 3,3 kW Inverteres klíma - a Sztori
Ú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
- Újszerű Lenovo Thinkbook 14" FHD+ IPS Ultra 5 125U 16GB DDR5 RAM 512GB NVME SS Lenovo Gar: 2029.05ig
- Teljesen új Samsung A55 DS 5G 8/128GB Awesome Iceblue (jegeskék) eladó
- Bonola 3 az 1-ben töltőállomás több Apple eszközhöz! Új!
- Eladó ASUS TUF Gaming F15 (TUF507ZV4-LP121W) i7, 24gb ram RTX 4060, gamer laptop!
- GIGA AKCIÓ! HP Elitebook 850 G8, I7-1185G7, 32 GB, 512 SSD MAGYAR VILÁGÍTÓS BILLENTYŰZET
- HIBÁTLAN iPhone 13 128GB Green-1 ÉV GARANCIA - Kártyafüggetlen, MS4347
- Beszámítás! Asus TUF VG249Q 24 144Hz FHD IPS 1ms monitor garanciával hibátlan működéssel
- iking.hu Apple iPhone 14 128GB Midnight használt 100% akku 6 hónap garancia
- Okosóra felvásárlás!! Samsung Galaxy Watch 5 Pro, Samsung Galaxy Watch 6 Classic
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Amíg simogatja, elodázza a végzetét.