Sobes.tech
Junior — Middle

Milliseid teenuse tüüpe tead ja kuidas nendega suhelda?

sobes.tech AI

Vastus AI-lt

Androidis on mitu tüüpi teenuseid:

  1. Esiplaaniteenus (Foreground Service) — teenus, mida kasutaja näeb selgelt teavituse kaudu. Kasutatakse pideva töö jaoks, näiteks muusika või navigatsioon.

  2. Taustateenus (Background Service) — töötab taustal ilma teavitusteta, kuid uusimates Android versioonides on sellel piirangud aku optimeerimise tõttu.

  3. Seotud teenus (Bound Service) — teenus, millele teised komponendid (näiteks Activity) ühenduvad, et suhelda selle kaudu kasutajaliidese abil.

  4. IntentService (vananenud, nüüd soovitatakse kasutada WorkManager) — teenus, mis täidab ülesandeid eraldi niidil, mis automaatselt peatub pärast täitmist.

Teenustega suhtlemine:

  • Teenuse käivitamine:

    val intent = Intent(this, MyService::class.java)
    startService(intent) // taust- või esiplaaniteenuse jaoks
    
  • Ühendamine teenusega:

    bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)
    
  • Teenuse peatamine:

    stopService(intent)
    

Pikkade või edasi lükatud ülesannete jaoks on soovitatav kasutada WorkManagerit või JobSchedulerit, kuna need arvestavad süsteemi piirangutega ja optimeerivad taustatööd.