Hirdetés
- Jolla és SailfishOS tapasztalatcsere
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Fotók, videók mobillal
- Xiaomi 17 Ultra - jó az optikája
- Félő, hogy az okosszemüveg a szexuális zaklatók játékszere lesz
- Ma megérkeztek Magyarországra is a Vivo V70-ek
- Android szakmai topik
- Telekom mobilszolgáltatások
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Yettel topik
Ú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.
-
vlevi
nagyúr
Ez az intent service. Amit mindentől fuggetlenul el lehet inditani, és fut a háttérben, nem kapcsolódiksemmihez. A servixenek saját magának kell leállnia, ha ninxs rá szükség. De tud üzenni más activitynek.
Én pl ezzel oldottam meg azt, hogy az applikqaciobol kilepve elinditok egy servicet, ami backupot készít, ha szukseges, es utana leallitja magat.
A bindservice arra valo, hogy akkor megy, amikor valami hozzakapcsolodik( ez a bind). És leáll automatikusan, ha mindenki lekapcaolodott rola (unbind). Például pont emiatt nem jó az appbol kilepeskori backupra, ugye, mert az app bezaraskor kéne inditani.
A harmadik service a legegyszerubb fajta, ami csak az appon belul fut, nem indithato külön. De appon belöli apróságokhoz meg pont az a jó.
Új hozzászólás Aktív témák
- Mibe tegyem a megtakarításaimat?
- Kettő együtt: Radeon RX 9070 és 9070 XT tesztje
- Házimozi haladó szinten
- Futás, futópályák
- AMD Navi Radeon™ RX 9xxx sorozat
- GL.iNet Flint 2 (GL-MT6000) router
- Jolla és SailfishOS tapasztalatcsere
- Horgász topik
- Garancia kérdés, fogyasztóvédelem
- E-roller topik
- További aktív témák...
- Keresünk iPhone 16/16e/16 Plus/16 Pro/16 Pro Max
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- AKCIÓ! LENOVO ThinkPad P15 Gen1 munkaállomás - i7 10875H 16GB DDR4 512GB SSD Quadro T1000 4GB W
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Space Black - 1 ÉV GARANCIA -Kártyafüggetlen, MS4332
- Apple iPhone 13 mini / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 87%
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

