మీ స్మార్ట్ఫోన్లో తరచుగా బహుళ అనువర్తనాలను ఉపయోగించడం, మీరు ఒక అనువర్తనం నుండి మరొక అనువర్తనానికి మారాలని అనుకోవచ్చు, కానీ మీ అన్ని అనువర్తనాలు నేపథ్యంలో చురుకుగా ఉండేలా చూసుకోండి. ఇవి అందించే సేవలు తప్ప మరేమీ కాదు . కాబట్టి, Android సర్వీసెస్ ట్యుటోరియల్లోని ఈ వ్యాసం సేవలతో ఎలా పని చేయాలో అర్థం చేసుకోవడానికి మీకు సహాయపడుతుంది.
నేను ఈ క్రింది అంశాలను కవర్ చేస్తాను:
- Android సేవలు అంటే ఏమిటి?
- Android- సేవలు జీవిత చక్రం
- Android- సేవల పద్ధతులు
- Android సేవల కోసం అస్థిపంజరం కోడ్
- డెమో
Android సేవలు అంటే ఏమిటి?
సేవ ప్రాథమికంగా ఒక ప్రక్రియ. Android సేవ ప్రదర్శించడానికి నేపథ్యంలో నడుస్తున్న ఒక భాగంవినియోగదారుతో సంభాషించకుండా దీర్ఘకాలిక కార్యకలాపాలు మరియు అనువర్తనం నాశనం అయినప్పటికీ ఇది పనిచేస్తుంది.మరొక అనువర్తన భాగం సేవను ప్రారంభించగలదు మరియు మీరు మరొక అనువర్తనానికి మారినప్పటికీ ఇది నేపథ్యంలో కొనసాగుతుంది.
అదనంగా, ఒక భాగం దానితో సేవ చేయడానికి మరియు ఇంటర్ప్రొసెస్ కమ్యూనికేషన్ను నిర్వహించడానికి ఒక సేవతో బంధిస్తుంది.
గమనిక: Android.app.Service అనేది కాంటెక్స్ట్వ్రాపర్ క్లాస్ యొక్క ఉపవర్గం మరియు Android సేవ థ్రెడ్ లేదా ప్రత్యేక ప్రక్రియ కాదు.
Android- సేవలు జీవిత చక్రం
Android సేవల జీవిత చక్రం రెండు రకాల సేవలను కలిగి ఉంటుంది. సేవ యొక్క జీవితచక్రం రెండు వేర్వేరు మార్గాలను అనుసరిస్తుంది, అవి:
ప్రారంభమైంది
అనువర్తన భాగం కాల్ చేసినప్పుడు సేవ ప్రారంభించబడుతుంది ప్రారంభ సేవ () పద్ధతి. ప్రారంభించిన తర్వాత, ప్రారంభానికి కారణమైన భాగం నాశనం అయినప్పటికీ, ఒక సేవ నిరవధికంగా నేపథ్యంలో నడుస్తుంది. దీనిని ఉపయోగించడం ద్వారా ఆపివేయబడుతుంది stopService () పద్ధతి. కాల్ చేయడం ద్వారా సేవ కూడా ఆగిపోతుంది stopSelf () పద్ధతి.
బౌండ్
అనువర్తన భాగం కాల్ చేయడం ద్వారా దానికి కట్టుబడి ఉన్నప్పుడు సేవ కట్టుబడి ఉంటుంది bindService () . సేవతో సంభాషించడానికి, అభ్యర్థనలను పంపడానికి మరియు ఫలితాలను పొందడానికి భాగాలను అనుమతించే క్లయింట్-సర్వర్ ఇంటర్ఫేస్ను బౌండ్ సేవ అందిస్తుంది. ఇది ఇంటర్-ప్రాసెస్ కమ్యూనికేషన్ (ఐపిసి) అంతటా ప్రాసెస్ చేస్తుంది. క్లయింట్ కాల్ చేయడం ద్వారా సేవను బంధించవచ్చు unbindService () పద్ధతి.
Android సేవలపై ఈ వ్యాసం యొక్క తరువాతి విభాగానికి వెళుతున్నప్పుడు, భిన్నమైన విషయాలను చర్చిద్దాంసేవా తరగతి కింద పద్ధతులు.
Android సేవల ట్యుటోరియల్: పద్ధతులు
మీరు ఏ అనువర్తనంలోనైనా సులభంగా ఆపరేషన్లు చేయగల కొన్ని పద్ధతులు ఉన్నాయి. వాటిలో కొన్ని:
విధానం | వివరణ |
---|---|
onStartCommand () | కార్యాచరణను చెప్పడం వంటి ఇతర భాగాలు కాల్ చేయడం ద్వారా సేవను ప్రారంభించమని అభ్యర్థించినప్పుడు ఈ పద్ధతి అంటారు ప్రారంభ సేవ () . సంబంధిత పని ఉపయోగించడం ద్వారా సేవను ఆపడం మీ బాధ్యత stopSelf () లేదా stopService () పద్ధతులు. |
అన్బైండ్ () | మరొక భాగం కాల్ చేయడం ద్వారా సేవతో బంధించాలనుకున్నప్పుడు ఈ పద్ధతిని పిలుస్తుంది bindService () . దీన్ని అమలు చేయడానికి, సేవతో కమ్యూనికేట్ చేయడానికి క్లయింట్లు ఉపయోగించే ఇంటర్ఫేస్ను మీరు తప్పక అందించాలి. ఇది తిరిగి ఇస్తుంది ఐబిందర్ వస్తువు. మీరు బైండింగ్ను అనుమతించకూడదనుకుంటే, తిరిగి వెళ్లండి శూన్య . |
onUnbind () | సేవ ద్వారా ప్రచురించబడిన ఒక నిర్దిష్ట ఇంటర్ఫేస్ నుండి అన్ని క్లయింట్లు డిస్కనెక్ట్ అయినప్పుడు సిస్టమ్ ఈ పద్ధతిని పిలుస్తుంది. |
onRebind () | అన్నీ డిస్కనెక్ట్ చేయబడిందని గతంలో తెలియజేసిన తర్వాత కొత్త క్లయింట్లు సేవకు కనెక్ట్ అయినప్పుడు ఈ పద్ధతిని పిలుస్తుంది onUnbind (ఉద్దేశం) . |
onCreate () | సేవను మొదట ఉపయోగించి సృష్టించినప్పుడు సిస్టమ్ ఈ పద్ధతిని పిలుస్తుంది onStartCommand () లేదా అన్బైండ్ () . ఇది ఒక-సమయం సెటప్ చేయడానికి అవసరం. |
onDestroy () | సేవ ఇకపై ఉపయోగించబడనప్పుడు మరియు నాశనం అవుతున్నప్పుడు ఈ పద్ధతిని పిలుస్తారు. థ్రెడ్లు, రిజిస్టర్డ్ శ్రోతలు, రిసీవర్లు మొదలైన వనరులను శుభ్రం చేయడానికి మీ సేవ దీన్ని అమలు చేయాలి. |
అస్థిపంజరం కోడ్
పబ్లిక్ క్లాస్ మెయిన్ఆక్టివిటీ కార్యాచరణను విస్తరిస్తుంది {ప్రైవేట్ టెక్స్ట్ వ్యూ టెక్స్ట్ వ్యూ ప్రైవేట్ బ్రాడ్కాస్ట్ రిసీవర్ రిసీవర్ = కొత్త బ్రాడ్కాస్ట్ రిసీవర్ () public public పబ్లిక్ శూన్యతను ఆన్ రిసీవ్ (కాంటెక్స్ట్ కాంటెక్స్ట్, ఇంటెంట్ ఇంటెంట్) {బండిల్ బండిల్ = ఇంటెంట్.జెట్ టెక్స్ట్రాస్ () ఉంటే (బండిల్! = శూన్య) {స్ట్రింగ్ స్ట్రింగ్ = bundle.getString (DownloadService.FILEPATH) int resultCode = bundle.getInt (DownloadService.RESULT) if (resultCode == RESULT_OK) {Toast.makeText (MainActivity.this, 'డౌన్లోడ్ పూర్తయింది. డౌన్లోడ్ చేయండి URI:' + string, Toast.LENGTH_LENGTH_LENGTH .show () textView.setText ('డౌన్లోడ్ పూర్తయింది')} else {Toast.makeText (MainActivity.this, 'డౌన్లోడ్ విఫలమైంది', Toast.LENGTH_LONG) .షో () textView.setText ('డౌన్లోడ్ విఫలమైంది')}}}} Public ఓవర్రైడ్ పబ్లిక్ శూన్యత ఆన్క్రియేట్ (బండిల్ సేవ్ఇన్స్టాన్స్స్టేట్) {super.onCreate (saveInstanceState) setContentView (R.layout.activity_main) textView = (TextView) findViewById (R.id.status) ) రిజిస్టర్ రిసీవర్ (రిసీవర్, కొత్త ఇంటెంట్ ఫిల్టర్ (డౌన్లోడ్ సర్వీస్. నోటిఫికేషన్)) ver ఓవర్రైడ్ రక్షిత శూన్యత onPause () {super.onPause () నమోదుకాని రిసీవర్ (రిసీవర్)} పబ్లిక్ శూన్యత onClick (వీక్షణను వీక్షించండి) స్టోర్ ఇంటెంట్.పుట్ఎక్స్ట్రా (డౌన్లోడ్సర్వీస్
ఈ ఉదాహరణలో, మీరు వంటి పద్ధతులను చూడవచ్చు onCreate () , onResume () , onPause () . ఈ పద్ధతులు Android లోని సేవల నిర్మాణాన్ని తయారు చేస్తాయి.
ఇప్పుడు, ఈ Android సేవల ట్యుటోరియల్ యొక్క ఆచరణాత్మక భాగాన్ని పొందడం చూద్దాంఒక సేవను ఎలా సృష్టించాలి మరియు దానిని ఎలా నిర్వహించాలి.
డెమో
నేపథ్యంలో సంగీతాన్ని ఎలా ప్లే చేయాలో చూద్దాం. అలా చేయడానికి, నేను ఉపయోగిస్తాను ఆండ్రియోడ్ స్టూడియో .
దశ 1
క్రొత్త ఖాళీ ప్రాజెక్ట్ను సృష్టించండి. మీ ప్రాజెక్ట్కు పేరు పెట్టండి మరియు జావా ఫోల్డర్పై క్లిక్ చేసి మెయిన్ యాక్టివిటీ . మొదట, జోడించండి మీడియా ప్లేయర్ తద్వారా మీరు ప్రారంభం, లూప్ను సెట్ చేయడం వంటి ప్లేయర్ వివరాలను దిగుమతి చేసుకోవచ్చు.
పట్టికలో కాంటెక్స్ట్ ఫిల్టర్ అంటే ఏమిటి
ప్యాకేజీ com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity పబ్లిక్ క్లాస్ మెయిన్ యాక్టివిటీ AppCompatActivity ని విస్తరించింది (ఇది, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}
గమనిక: మీరు దీన్ని మొదటిసారి ఉపయోగిస్తుంటే, BIOS ని ప్రారంభించడం మర్చిపోవద్దు. మీ సిస్టమ్ను పున art ప్రారంభించడం ద్వారా మీరు దీన్ని చేయవచ్చు.
మీరు వర్చువల్ పరికరాన్ని జోడించాలి. దానిపై క్లిక్ చేయండి AVD మేనేజర్ను తెరవండి.
మీకు నచ్చిన పరికరాన్ని ఎంచుకోండి మరియు మీరు సిద్ధంగా ఉన్నారు!
స్క్రీన్ సక్రియంగా ఉన్నప్పుడు మాత్రమే ఇది అమలు అవుతుంది, అయితే ఈ అనువర్తనం నేపథ్యంలో కూడా పని చేయడానికి, మీరు కోడ్లో మరికొన్ని పంక్తులను జోడించాలి activity_main.xml ఫైల్.
దశ 2
మీరు సంబంధిత కోడ్ను అమలు చేసిన తర్వాత, మీరు అనువర్తనాన్ని అమలు చేయగలుగుతారు మరియు నేపథ్యంలో సంగీతాన్ని ప్లే చేయగలుగుతారు, అనగా, ఏదైనా ఇతర అనువర్తనం తెరిచినట్లయితే, ఈ ఆడియో ఇప్పటికీ ప్లే అవుతోంది.
ఇది ఎలా చేయవచ్చో చూద్దాం.
- జావా ఫోల్డర్లో మరొక తరగతిని సృష్టించి దానికి పేరు పెట్టండి. ఇక్కడ, నేను దీనిని “ MyService '.
- ఈ తరగతి సేవా తరగతిని విస్తరించింది.
- మీరు సేవా తరగతి పద్ధతులను కలిగి ఉన్న తర్వాత, క్లిక్ చేయడం ద్వారా పద్ధతులను అమలు చేయండి alt + Enter.
- దీని తరువాత, మీరు పద్ధతులను భర్తీ చేయాలి. కాబట్టి, ఎంపికలను పొందడానికి విండోపై కుడి క్లిక్ చేయండి.
- ఓవర్రైడ్ పద్ధతులను రూపొందించండి, ఎంచుకోండి onStartCommand () , మరియు OnDestroy ().
- సవరించండి onStartCommand () కింది కోడ్ను జోడించడం ద్వారా పద్ధతులు .:
మీడియా ప్లేయర్ ప్లేయర్ = మీడియా ప్లేయర్.క్రియేట్ (ఇది, సెట్టింగులు.సిస్టమ్. DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()
గమనిక: లో ఈ కోడ్ను తొలగించండి మెయిన్ యాక్టివిటీ.
- ఇది స్టేట్మెంట్ను తొలగించమని అడుగుతూ లోపం విసురుతుంది. కాబట్టి, రిటర్న్ స్టేట్మెంట్ను తీసివేసి మీడియా ప్లేయర్ను ప్రైవేట్ పద్దతిగా ప్రకటించి తిరిగి వెళ్లండి START_STICKY . ఇది ప్రారంభ స్థితిని అందిస్తుంది.
- జోడించు player.stop () లో onDestroy () పద్ధతి.
దశ 3
వెళ్ళండి గొడ్డు మాంసం మరియు లేఅవుట్లకు వెళ్లి, క్లిక్ చేయండి android_main.xml అప్లికేషన్ యొక్క XML ఫైల్ పొందడానికి.
- టెక్స్ట్ వ్యూని తీసివేసి లీనియర్లేఅవుట్ తో భర్తీ చేసి బటన్లను జోడించండి. సంబంధిత కోడ్ను జోడించండి.
<లీనియర్లేఅవుట్ Android: ధోరణి= 'నిలువు' Android: లేఅవుట్_విడ్త్= 'మ్యాచ్_పేరెంట్' Android: లేఅవుట్_ ఎత్తు= 'ర్యాప్_కాంటెంట్' Android: లేఅవుట్_సెంటర్ వర్టికల్= 'నిజం' సాధనాలు:పట్టించుకోకుండా= 'తప్పిపోయిన పరిమితులు'><బటన్ Android: id= 'id + id / buttonStart' Android: టెక్స్ట్= 'సేవ ప్రారంభించండి' Android: లేఅవుట్_విడ్త్= 'ర్యాప్_కాంటెంట్' Android: లేఅవుట్_ ఎత్తు= 'మ్యాచ్_పేరెంట్'/><బటన్ Android: id= 'id + id / buttonStop' Android: టెక్స్ట్= 'సేవ ఆపు' Android: లేఅవుట్_విడ్త్= 'ర్యాప్_కాంటెంట్' Android: లేఅవుట్_ ఎత్తు= 'మ్యాచ్_పేరెంట్'/>లీనియర్లేఅవుట్>
- మీరు దీన్ని చేసిన తర్వాత, తిరిగి వెళ్లండి మెయిన్ యాక్టివిటీ XML ఫైల్ మరియు లింక్ చేయడానికి సంబంధిత కోడ్ను క్లాస్ చేసి జోడించండి MyServiceClass.
ప్యాకేజీ com.example.newproject దిగుమతి androidx.appcompat.app. .activity_main) start = (బటన్) findViewById (R.id.buttonStart) stop = (బటన్) findViewById (R.id.buttonStop) start.setOnClickListener (this) stop.setOnClickListener (ఇది) public public public public public public public view view view view view view ) {if (view == start) {startService (new Intent (ఇది, MyServiceClass.class))} else if (view == stop) {stopService (new Intent (this, MyServiceClass.class))}}}
దశ 4
మీరు తరగతులను లింక్ చేసిన తర్వాత, కోడ్ను అమలు చేద్దాం.
గమనిక: AndroidManifiest.xml ఫైల్లో సేవా తరగతి పేరును జోడించండి.
తరువాత, కోడ్ను రన్ చేద్దాం.
మీరు సేవను ప్రారంభించిన తర్వాత, మరొక అనువర్తనం తెరిచినప్పటికీ అది నేపథ్యంలో నడుస్తుంది. మీరు బటన్లపై క్లిక్ చేయడం ద్వారా సేవను ప్రారంభించవచ్చు లేదా ఆపవచ్చు.
ఇది Android సేవలతో ఎలా పని చేయాలో మీరు నేర్చుకున్న సాధారణ డెమో.
కాబట్టి దీనితో, మేము “ఆండ్రాయిడ్ సర్వీసెస్ ట్యుటోరియల్” పై ఈ వ్యాసం చివరకి వచ్చాము.ఈ బ్లాగులో పొందుపరచబడిన అంశాలతో మీరు స్పష్టంగా ఉన్నారని నేను ఆశిస్తున్నాను.
ఇప్పుడు మీరు మా Android సర్వీసెస్ ట్యుటోరియల్ బ్లాగ్ ద్వారా వెళ్ళారు, మీరు ఎడురేకా యొక్క తనిఖీ చేయవచ్చు మీ అభ్యాసాన్ని త్వరగా ప్రారంభించడానికి.
ఏదైనా ప్రశ్నలు ఉన్నాయా? ఈ “Android సర్వీసెస్ ట్యుటోరియల్” బ్లాగ్ వ్యాఖ్యలలో వాటిని ప్రస్తావించడం మర్చిపోవద్దు. మేము మీ వద్దకు తిరిగి వస్తాము.