Home » Articole » Articole » Calculatoare » Programare » Android » Servicii în dezvoltarea aplicațiilor mobile cu Android

Servicii în dezvoltarea aplicațiilor mobile cu Android

postat în: Android 0

În Android, un serviciu este o aplicație care rulează în fundal fără nicio interacțiune cu utilizatorul. De exemplu, în timp ce utilizați o aplicație, este posibil să doriți să descărcați un fișier în același timp. În acest caz, codul care descarcă fișierul nu are nevoie să interacționeze cu utilizatorul și, prin urmare, poate fi rulat ca un serviciu. Serviciile sunt, de asemenea, perfecte pentru circumstanțele în care nu este nevoie să prezentați o interfață cu utilizatorul (UI) utilizatorului. De exemplu, luați în considerare o aplicație care înregistrează continuu coordonatele geografice ale dispozitivului. În acest caz, puteți scrie un serviciu pentru a face acest lucru în fundal. Puteți crea propriile servicii și le puteți utiliza pentru a efectua sarcini în fundal în mod asincron.

Pentru a îmbunătăți răspunsul și performanța aplicației, luați în considerare implementarea unui serviciu pentru a gestiona sarcina în afara ciclului de viață principal al aplicației. Orice servicii expuse de o aplicație Android trebuie înregistrate în fișierul Manifest Android.

Utilizarea serviciilor

Puteți utiliza serviciile în scopuri diferite. În general, utilizați un serviciu atunci când nu este necesară nicio intervenție din partea utilizatorului. Iată câteva circumstanțe în care ați putea dori să implementați sau să utilizați un serviciu Android:

  • aplicație meteo, de e-mail sau de rețea socială ar putea implementa un serviciu pentru a verifica în mod curent dacă există actualizări.
  • aplicație foto sau media care își menține datele sincronizate online ar putea implementa un serviciu pentru a împacheta și încărca conținut nou în fundal atunci când dispozitivul este inactiv.
  • aplicație de editare video ar putea descărca procesarea grea la o coadă din serviciul său pentru a evita afectarea performanței generale a sistemului pentru sarcini neesențiale.
  • aplicație de știri ar putea implementa un serviciu pentru a „preîncărca” conținutul prin descărcarea știrilor înainte de lansarea aplicației de către utilizator, pentru a îmbunătăți performanța.

Crearea unui serviciu

Pentru a crea un serviciu, trebuie să definiți o clasă care extinde clasa de bază Service. În interiorul clasei de servicii, trebuie să implementați patru metode discutate mai jos:

Tabelul 14:

onStartCommand()

  • Sistemul apelează această metodă atunci când o altă componentă, cum ar fi o activitate, solicită pornirea serviciului, apelând startService().
  • Odată ce această metodă se execută, serviciul este pornit și poate rula în fundal pe termen nelimitat.
  • Este responsabilitatea dumneavoastră să opriți serviciul atunci când munca sa este finalizată, apelând stopSelf() sau stopService().
  • Dacă doriți doar să furnizați o legătură, nu trebuie să implementați această metodă.

onBind()

  • Sistemul apelează această metodă atunci când o altă componentă dorește să se lege cu serviciul apelând bindService().
  • În implementarea acestei metode, trebuie să furnizați o interfață pe care clienții o utilizează pentru a comunica cu serviciul, returnând un IBinder.
  • Dacă nu doriți să permiteți legarea, atunci ar trebui să returnați null.

onCreate()

  • Sistemul apelează această metodă atunci când serviciul este creat pentru prima dată, pentru a efectua proceduri de configurare unice înainte de a apela fie onStartCommand(), fie onBind().
  • Dacă serviciul rulează deja, această metodă nu este apelată.

onDestroy()

  • Sistemul apelează această metodă atunci când serviciul nu mai este utilizat și este distrus.
  • Această metodă ar trebui implementată pentru a curăța orice resurse, cum ar fi fire de execuție, ascultători înregistrați, receptori etc.
  • Acesta este ultimul apel pe care îl primește serviciul.

Pornirea și oprirea unui serviciu

Puteți utiliza Intenții și Activities pentru a lansa servicii folosind metodele startService() și bindService(). Un serviciu poate lua în esență două forme. Diferența dintre două este următoarea:

bindService() startService()
Un serviciu este „pornit” atunci când o componentă a aplicației îl pornește apelând metoda startService(). Un serviciu este „legat” atunci când o componentă a aplicației se leagă de acesta prin apelul bindService().
Odată pornit, un serviciu poate rula în fundal pe termen nelimitat, chiar dacă componenta care l-a pornit este distrusă. Un serviciu legat rulează doar atâta timp cât o altă componentă a aplicației este legată de acesta. Mai multe componente se pot lega la serviciu.
De obicei, un serviciu pornit efectuează o singură operațiune și nu returnează niciun rezultat apelantului. De exemplu, ar putea descărca sau încărca un fișier prin rețea. Când operațiunea este finalizată, serviciul ar trebui să se oprească singur. Un serviciu legat oferă o interfață client-server care permite componentelor să interacționeze cu serviciul, să trimită cereri, să obțină rezultate și chiar să facă acest lucru între procese cu comunicare inter-procese (IPC).

Tabelul 15

Ciclul de viață al serviciului

Asemenea unei activități, un serviciu are metode de apel invers al ciclului de viață pe care le puteți implementa pentru a monitoriza modificările stării serviciului și a efectua lucrări la momentele potrivite, așa cum s-a discutat mai sus. Figura de mai jos ilustrează metodele tipice de apel invers pentru un serviciu creat de startService() și de cele create de bindService.

Ciclul de viață al serviciului

Sursa: Babasaheb Ambedkar (2019) Mobile Application Development, Open University, licența CC BY 4.0. Traducerea și adaptarea © 2025 Nicolae Sfetcu


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *