Új hozzászólás Aktív témák
-
Karma
félisten
Nem elfogadták, hanem a kérdező egyszemélyben fogadta el a választ. Nem mindegy, mert egyáltalán nem biztos, hogy helyes is. Amellett, hogy 2010-ben készült, alapvetően elég súlyos hiba egy Contextre(*) static változóval hivatkozni, mert ezzel keresztülhúzod az életciklusát.
(*): Az Application egy kivétel ez alól, mert processzenként csak egy jön létre biztosan.
Ha a Service-ed példányával akarsz közvetlenül kommunikálni, akkor a Binder erre a megoldás, amit egyébként szintén pár sorral le lehet tudni. Még csak nem is agysebészet, kell egy Binder subclass, az onBind metódus a Service oldalon; egy ServiceConnection és a bindService/unbindService hívás az Activity oldalon.
Ha nem közvetlenül akarsz vele beszélni, akkor pedig ott vannak az Intentek és a BroadcastReceiverek - a Service is simán regisztrálhat egyet amikor életben van -; vagy Ottót ill. EventBust is használhatsz. Mondjuk csak ehhez a feladathoz overkill egy külső libet behozni.
vlevi: Egy kicsit összekeverted a dolgokat. Nem ezek a service-ek típusai.
1) Vannak a bound service-ek, amik ahogy írtad, a bindService hatására élednek, és leállnak amikor lecsatlakozott az utolsó kliens.
2) Vannak a started service-ek, amik egy startService(Intent) hatására indulnak; eldönthetik, hogy leállnak-e, futnak tovább, vagy úgy futnak tovább, hogy ha bármi miatt lehalnának, a rendszer akkor is indítsa vissza őket (sticky). Ettől független dolog az, hogy csak az alkalmazásodon belül, vagy kívülről is hívható-e (exported flag).
3) Vannak még hibrid service-ek, amik olyan startedek, amikre bindolni is lehet. Ez a billentyűzet történet szerintem ebbe a kategóriába kellene, hogy essen.
Az IntentService egy speciális started service ősosztály, ami arra szolgál, hogy egyszerűen tudj a háttérben végrehajtandó feladatokat sorban átadni neki, és majd leáll, amikor mindennel végzett. De ettől még nem lesz külön kategória.
Új hozzászólás Aktív témák
- Samsung Galaxy A56 5G 8/256GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 Év Garanciával!
- Intel i5 9600K / Beszámítás OK!
- Intel Core i5 10400 6 mag / 12 szál / Beszámítás OK!
- Asus Rog Strix Scar G635LW-RW011W
- Lenovo IdeaPad Slim 3/15.3" WUXGA/Snapdragon X X1-26-100 Processor/24GB/1TB SSD/GARANCIA
- 261 - Lenovo LOQ (17IRX10) - Intel Core i7-14700HX, RTX 5070
- Sata 240GB SSD // 100/100% // számla // garancia
- HIBÁTLAN iPhone 12 Pro 256GB Graphite-1 ÉV GARANCIA - Kártyafüggetlen, MS4518, 100% Akksi
- AKCIÓ! ASRock B450M R5 4500 16GB DDR4 512GB SSD GTX 1660 Super 6GB Zalman T3 Plus DeepCool 400W
- Honor Pad X8a 64GB,Újszerű,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
