Kuo skiriasi paslaugos nuo ketinamų paslaugų „Android“?


Atsakymas 1:

Aptarnavimas yra pagrindinė paslaugų diegimo klasė. Aptarnavimo klasė vykdoma pagrindinėje programos temoje, kuri gali sumažinti programos našumą.

Paslauga yra programos komponentas, atspindintis programos norą atlikti ilgesnę operaciją, nebendraujant su vartotoju, arba pateikti kitų programų funkcijas.

„IntentService“, kuri yra tiesioginė paslaugų poklasis, yra pagimdyta, kad viskas būtų lengviau. „IntentService“ naudojama atlikti tam tikrą užduotį fone. Tai atlikus, „IntentService“ egzempliorius savaime pasibaigia. Jo naudojimo pavyzdžiai būtų tam tikrų išteklių atsisiuntimas iš interneto.

Spustelėkite, jei norite gauti daugiau informacijos apie „Android“


Atsakymas 2:

Paslaugos vykdomos pagrindinėje programos gijoje. Dėl šios priežasties, kai mes naudojame tik paslaugą, kad atliktume ilgai veikiančią operaciją (> 5s), programa sugenda ir parodomas ANR dialogo langas. Norėdami to išvengti, mes paprastai sukuriame naują siūlą iš serviso ir įkeliame jame ilgai trunkančią operaciją.

Dabar, siekiant to netiesiogiai patenkinti, naudojama „IntentService“. „IntentService“ automatiškai neršia gija ir vykdo reikiamą operaciją neužblokuodama pagrindinio sriegio.


Atsakymas 3:

Ketinimų tarnyba yra paslaugų rūšis, labai gerai atliekanti keletą konkrečių dalykų.

1. Gijų valdymas: jis automatiškai apdoroja visas gaunamas užklausas atskiroje gijoje, pašalindamas gijų tvarkymo naštą nuo kūrėjo.

2. Užklausų eilė: joje pateikiamos visos gaunamos užklausos ir jos apdorojamos po vieną

3. Stotelės taškas: Kai užklausos eilė tuščia, ji automatiškai sustoja, todėl kūrėjui nereikia jaudintis dėl aptarnavimo gyvavimo ciklo tvarkymo.

Kaip kūrėjas, mes tiesiog turime sutelkti dėmesį į savo pagrindinę verslo logiką ir įdiegti ją „OnHandleIntent“ atgalinio ryšio metodu.

Jei norite labiau valdyti bet kurį iš aukščiau paminėtų parametrų, pvz., Eksploatavimo ciklą ir paslaugų sriegą, turėtumėte įdiegti savo paslaugą, kitu atveju kreiptis į ketinimų tarnybą.

Ketinimų tarnyba yra idealus Paslaugos įgyvendinimas, kuris jums atitiks daugumą jūsų poreikių

API dokumentas: „IntentService“ „Android“ kūrėjai

Šaltinis ketinimų teikti paslaugas kodas: „core“ / „Java“ / „Android“ / programa / „IntentService.java“ - platforma / rėmai / bazė - „Git“ „Google“

Mokymo šaltinis: foninės paslaugos kūrimas


Atsakymas 4:

Platesniame lygyje abi yra tos pačios, vykdo užduotį fone be vartotojo sąsajos. „IntentService“ pagrindinė klasė yra pati „Service“.

Nors tarp „Service“ ir „intentService“ yra skirtumų, pagrindinis skirtumas yra tas, kad „intentService“ yra sukurta užduotims atlikti asinchroniškai.

Kiti pastebimi skirtumai:

a. Aptarnavimas naudoja pagrindinį programos giją, taigi, jei ketinate naudoti paslaugą ilgoms užduotims, patartina neršti giją, kad atliktumėte užduotį. Taigi, tai neužblokuos pagrindinės programos gijos.

Tuo tarpu „intentService“ pagal numatytuosius nustatymus sukuria darbuotojo siūlą atlikti užduotį.

b. Aptarnavimą reikia aiškiai nutraukti, jei reikia jį nutraukti atlikus užduotį, naudojant „stopSelf“ ().

Tuo tarpu „intentService“ automatiškai sustabdo save ten, kur nėra ketinimų eilėje.

Poilsis, jei norite geriau suprasti „Google“ dokumentaciją, skirtą „Service“ ir „IntentService“, atskirai.