Tutorial Servicii Android: Cum să rulați o aplicație în fundal?



Acest tutorial pentru servicii Android vă ajută să înțelegeți cum să efectuați operațiuni pe fundal, cum ar fi redarea de muzică, nu are nicio interfață atașată

Utilizând adesea mai multe aplicații pe telefonul smartphone, poate doriți să treceți de la o aplicație la alta, dar să vă asigurați că toate aplicațiile dvs. rămân active în fundal. Acestea nu sunt altceva decât serviciile oferite de . Deci, acest articol despre Tutorial Servicii Android vă va ajuta să înțelegeți cum să lucrați cu Serviciile.

Voi acoperi următoarele subiecte:





Ce sunt serviciile Android?

Serviciul este practic un proces. Serviciu Android este o componentă care rulează în fundal pentru a efectuaoperează pe termen lung fără a interacționa cu utilizatorul și funcționează chiar dacă aplicația este distrusă.O altă componentă a aplicației poate porni un serviciu și continuă să ruleze în fundal, chiar dacă treceți la o altă aplicație.

În plus, o componentă se poate lega de un serviciu pentru a interacționa cu acesta și, de asemenea, pentru a efectua comunicări între procese.



Notă: Android.app.Service este o subclasă a clasei ContextWrapper, iar serviciul Android nu este un fir sau un proces separat.

Ciclul de viață al serviciilor Android

Ciclul de viață al serviciilor Android poate avea două forme de servicii. Ciclul de viață al unui serviciu urmează două căi diferite, și anume:

  1. Început
  2. Legat

Început



Un serviciu este pornit atunci când o componentă a aplicației apelează startService () metodă. Odată pornit, un serviciu poate rula în fundal pe o perioadă nedeterminată, chiar dacă componenta responsabilă de pornire este distrusă. Este oprit folosind stopService () metodă. De asemenea, serviciul se poate opri prin apelarea stopSelf () metodă.

Legat

Un serviciu este legat atunci când o componentă a aplicației se leagă de el apelând bindService () . Serviciul Bound oferă o interfață client-server care permite componentelor să interacționeze cu serviciul, să trimită cereri și să obțină rezultate. Procesează prin comunicarea inter-proces (IPC). Clientul poate deconecta serviciul apelând unbindService () metodă.

Ciclul de viață al serviciului Android- Tutorial Servicii Android- Edureka

Trecând la următoarea secțiune a acestui articol despre serviciile Android, să discutăm diferitelemetodele din clasa de servicii.

Tutorial Servicii Android: Metode

Există câteva metode prin care puteți efectua cu ușurință operațiuni pe orice aplicație. Unii dintre ei sunt:

MetodăDescriere
onStartCommand ()

Această metodă este apelată atunci când orice altă componentă, cum ar fi să spunem o activitate, solicită pornirea serviciului, apelând startService () .

Este responsabilitatea dumneavoastră să opriți serviciul atunci când se efectuează lucrările corespunzătoare prin utilizarea stopSelf () sau stopService () metode.

dezlega ()

Apelează această metodă atunci când o altă componentă dorește să se lege cu serviciul prin apelare bindService () .

Pentru a implementa acest lucru, trebuie să furnizați o interfață pe care clienții o utilizează pentru a comunica cu serviciul. Se întoarce un IBinder obiect. Dacă nu doriți să permiteți legarea, reveniți nul .

onUnbind ()

Sistemul apelează această metodă atunci când toți clienții sunt deconectați de la o anumită interfață publicată de serviciu.

onRebind ()

Apelează această metodă atunci când clienții noi sunt conectați la serviciu după ce a fost notificat anterior că toți sunt deconectați onUnbind (Intentie) .

onCreate ()

Sistemul apelează această metodă atunci când serviciul este creat pentru prima dată folosind onStartCommand () sau dezlega () . Este necesar să efectuați o configurare unică.

onDestroy ()

Această metodă este apelată atunci când serviciul nu mai este utilizat și este distrus. Serviciul dvs. ar trebui să implementeze acest lucru pentru a curăța orice resurse, cum ar fi thread-uri, ascultători înregistrați, receptoare etc.

Codul scheletului

public class MainActivity extinde Activitatea {private TextView textView private BroadcastReceiver receiver = new BroadcastReceiver () {@Override public void onReceive (Context context, Intent intent) {Bundle bundle = intent.getExtras () if (bundle! = null) {String string = bundle.getString (DownloadService.FILEPATH) int resultCode = bundle.getInt (DownloadService.RESULT) if (resultCode == RESULT_OK) {Toast.makeText (MainActivity.this, 'Download complete. Download URI:' + string, Toast.LENGTH_LONG) .show () textView.setText ('Descărcare efectuată')} else {Toast.makeText (MainActivity.this, 'Descărcare eșuată', Toast.LENGTH_LONG) .show () textView.setText ('Descărcare eșuată')}}}} @Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status)} @Override protected void onResume () {super.onReses ) registerReceiver (receptor, nou IntentFilter (DownloadService.NOTIFICATION))} @Override protected void onPause () {super.onPause () unregisterReceiver (receiver)} public void onClick (View view) {Intent intent = new Intent (this, DownloadService.class) // adăugați informații pentru serviciu care fișier să descărcați și unde să magazin intent.putExtra (DownloadService.FILENAME, 'index.html') intent.putExtra (DownloadService.URL, 'www.edureka.co') startService (intent) textView.setText ('Serviciul a început')}}

În acest exemplu, puteți vedea metode precum onCreate () , onResume () , onPause () . Aceste metode alcătuiesc structura Serviciilor în Android.

Acum, ajungând la partea practică a acestui tutorial de servicii Android, să vedemcum să creați un serviciu și să îl gestionați.

Demo

Să vedem cum să redăm muzică în fundal. Pentru a face acest lucru, voi folosi Andriod Studio .

Pasul 1

Creați un nou proiect gol. Denumiți proiectul dvs. și faceți clic pe folderul Java și faceți clic pe Activitate principala . Mai întâi, adăugați Media Player astfel încât să puteți importa detalii despre jucător precum start, setați bucla și așa mai departe.

package com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity public class MainActivity extends AppCompatActivity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) setContentView (R.layout.activity_ Player) Media Player (acesta, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

Notă: dacă îl utilizați pentru prima dată, nu uitați să activați BIOS-ul. Puteți face acest lucru repornind sistemul.

Va trebui să adăugați un dispozitiv virtual. Doar faceți clic pe Deschideți managerul AVD.

Selectați un dispozitiv la alegere și sunteți gata!

Acest lucru va rula numai când ecranul este activ, dar pentru ca această aplicație să funcționeze chiar și în fundal, trebuie să adăugați câteva linii de cod în activity_main.xml fişier.

administrator hadoop vs dezvoltator hadoop

Pasul 2

După ce rulați codul corespunzător, veți putea rula aplicația și veți putea reda muzica pe fundal, adică, dacă este deschisă orice altă aplicație, acest sunet va fi în continuare redat.

Să vedem cum se poate face acest lucru.

  • Creați o altă clasă în folderul Java și denumiți-o. Aici, l-am numit „ Serviciul meu '.
  • Această clasă extinde clasa Service.
  • Odată ce aveți metodele de clasă Service, implementați metodele făcând clic alt + Enter.
  • După aceasta, trebuie să înlocuiți metodele. Deci, faceți clic dreapta pe fereastră pentru a obține opțiunile.
  • Generați metodele de suprascriere, selectați onStartCommand () , și OnDestroy ().
  • Editați fișierul onStartCommand () metode prin adăugarea următorului cod .:
MediaPlayer player = MediaPlayer.create (this, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()

Notă: Ștergeți acest cod în Activitate principala.

  • Acest lucru va genera o eroare prin care vi se cere să eliminați declarația. Deci, eliminați declarația de returnare și declarați MediaPlayer ca metodă privată și returnați START_STICKY . Aceasta va reveni la starea de pornire.
  • Adăuga player.stop () în onDestroy () metodă.

Pasul 3

Mergi la vită și accesați aspectele, faceți clic pe android_main.xml pentru a obține fișierul XML al aplicației.

  • Eliminați TextView și înlocuiți-l cu LinearLayout și adăugați butoane. Adăugați codul corespunzător.
<LinearLayout Android:orientare= 'vertical' Android: layout_width= 'match_parent' Android: layout_height= 'wrap_content' Android: layout_centerVertical= 'adevărat' instrumente:ignora= 'Constrângeri lipsă'><Buton Android: id= '@ + id / buttonStart' Android:text= 'Porniți serviciul' Android: layout_width= 'wrap_content' Android: layout_height= 'match_parent'/><Buton Android: id= '@ + id / buttonStop' Android:text= 'Opriți serviciul' Android: layout_width= 'wrap_content' Android: layout_height= 'match_parent'/>LinearLayout>
  • După ce faceți acest lucru, reveniți la Activitate principala class și adăugați codul corespunzător pentru a lega fișierul XML și fișierul MyServiceClass.
package com.example.newproject import androidx.appcompat.app.AppCompatActivity public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Buton start, stop @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) set .activity_main) start = (Buton) findViewById (R.id.buttonStart) stop = (Buton) findViewById (R.id.buttonStop) start.setOnClickListener (this) stop.setOnClickListener (this)} @Override public void onClick (View view ) {if (view == start) {startService (new Intent (this, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}

Pasul 4

După ce ați terminat de conectat cursurile, să rulăm codul.

Notă: Adăugați numele clasei de servicii în fișierul AndroidManifiest.xml.

Apoi, să rulăm codul.

Odată ce porniți serviciul, acesta va rula pe fundal, chiar dacă este deschisă o altă aplicație. Puteți porni sau opri serviciul făcând clic pe butoane.

Acesta este un demo simplu în care ați învățat cum să lucrați cu serviciile Android.

Prin urmare, ajungem la sfârșitul acestui articol despre „Tutorial pentru servicii Android”.Sper că ești clar cu subiectele tratate în acest blog.

Acum, că ați parcurs blogul Tutorial pentru servicii Android, puteți consulta Edureka’s pentru a începe rapid învățarea.

Aveți întrebări? Nu uitați să le menționați în comentariile acestui blog „Tutorial pentru servicii Android”. Ne vom întoarce la tine.