Új hozzászólás Aktív témák
-
thon73
tag
Megoldottam. Hátha segít valaki másnak is...
Szituáció:
Van egy preference activity/fragment és van egy service, ami olvassa a preferences-t. (A service "védett", semmilyen módon nem lehet hozzáférni a rendszer által támogatott módok közül.)
A gond:
A preference változásait az activity (is) kell, hogy figyelje; részben a feliratok módosítása, részben viszont ellenőrzés miatt (nem biztos, hogy a service fut...)
Ha az ellenőrzés miatt módosul az érték, akkor a változást figyelő onSharedPreferenceChanged() újra meghívásra kerül.
A service is kell figyelje a változást, mert néha reagálnia kellene rá. De az előző esetben a rekació akár kétszer is megtörténhet, is megtörténhet. Ez az adott megoldásban több szempontból is gond, mert pl. nem szabad a nem ellenőrzött értékekkel dolgozni, sok idő stb.
Megoldás:
Pofonegyszerű. Bevezettem egy preference-t "counter" kulccsal. Ha a preference ellenőrzése elegédett, akkor növeli a "counter"-t. Service meg csak ezt a countert figyeli.És a service nem kell kommunikáljon semmilyen megbízhatatlan activity-vel. Csak reagál a változásokra.
Semmi mást nem találtam, ahogy egy InputMethodService-t el lehetne érni Android által adott megoldásokkal.
Új hozzászólás Aktív témák
- Honor Magic8 Lite 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Inspiron N5010 i5 M520/4 GB RAM/Radeon HD5650/128 GB SSD laptop
- Logitech G920 PC/Xbox kormány.
- Elektronikus tárolómérleg 40 kg-ig, LCD alig használt
- ROG Core PC - ROG X570, Ryzen 7 3700X, 16Gb RGB, ROG RTX 2060 Super 8Gb, 500Gb M2 SSD - Windows 11
- Apple iPhone 16 Pro Max Desert Titanium 256GB használt karcmentes 89% akku (405 ciklus) 6 hónap
- DELL LATITUDE 7330 /i5-1245U/16GB/256 GB SDD/13.3/FHD/IPS/Garancia/
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- 27% - Samsung ViewFinity S70D Monitor 3840x2160 / 5ms / 60hz
- 27% - MSI MAG 27C6F Monitor! 1920x1080 / 0.5ms / 180Hz / FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
