Android சேவைகள் பயிற்சி: பின்னணியில் ஒரு பயன்பாட்டை எவ்வாறு இயக்குவது?



இந்த ஆண்ட்ராய்டு சர்வீசஸ் டுடோரியல், இசை விளையாடுவது போன்ற பின்னணியில் செயல்பாடுகளை எவ்வாறு செய்வது என்பதைப் புரிந்துகொள்ள உதவுகிறது, இதற்கு எந்த UI இணைக்கப்படவில்லை

உங்கள் ஸ்மார்ட்போனில் பெரும்பாலும் பல பயன்பாடுகளைப் பயன்படுத்துவதால், நீங்கள் ஒரு பயன்பாட்டிலிருந்து இன்னொரு பயன்பாட்டிற்கு மாற விரும்பலாம், ஆனால் உங்கள் எல்லா பயன்பாடுகளும் பின்னணியில் செயலில் இருப்பதை உறுதிசெய்யவும். இவை வழங்கும் சேவைகளைத் தவிர வேறில்லை . எனவே, Android சேவைகள் டுடோரியலில் இந்த கட்டுரை சேவைகளுடன் எவ்வாறு செயல்படுவது என்பதைப் புரிந்துகொள்ள உதவும்.

நான் பின்வரும் தலைப்புகளை உள்ளடக்குவேன்:





Android சேவைகள் என்றால் என்ன?

சேவை என்பது அடிப்படையில் ஒரு செயல்முறை. Android சேவை நிகழ்த்துவதற்காக பின்னணியில் இயங்கும் ஒரு கூறுபயனருடன் தொடர்பு கொள்ளாமல் நீண்டகால செயல்பாடுகள் மற்றும் பயன்பாடு அழிக்கப்பட்டாலும் அது செயல்படும்.மற்றொரு பயன்பாட்டுக் கூறு ஒரு சேவையைத் தொடங்கலாம், மேலும் நீங்கள் மற்றொரு பயன்பாட்டிற்கு மாறினாலும் அது பின்னணியில் தொடர்ந்து இயங்கும்.

கூடுதலாக, ஒரு கூறு ஒரு சேவையுடன் தொடர்பு கொள்ளவும், இடைசெயல் தகவல்தொடர்புகளைச் செய்யவும் தன்னை இணைத்துக் கொள்ளலாம்.



ஜாவாவில் பிளவு என்ன செய்கிறது

குறிப்பு: Android.app.Service என்பது ContextWrapper வகுப்பின் துணைப்பிரிவு மற்றும் Android சேவை ஒரு நூல் அல்லது தனி செயல்முறை அல்ல.

Android- சேவைகள் வாழ்க்கை சுழற்சி

Android சேவைகள் வாழ்க்கைச் சுழற்சியில் இரண்டு வகையான சேவைகள் இருக்கலாம். ஒரு சேவையின் வாழ்க்கைச் சுழற்சி இரண்டு வெவ்வேறு பாதைகளைப் பின்பற்றுகிறது, அதாவது:

  1. தொடங்கியது
  2. கட்டுண்டது

தொடங்கியது



பயன்பாட்டு கூறு அழைக்கும்போது ஒரு சேவை தொடங்கப்படுகிறது தொடக்க சேவை () முறை. துவங்கியதும், ஒரு சேவை பின்னணியில் காலவரையின்றி இயங்க முடியும், தொடக்கத்திற்கு காரணமான கூறு அழிக்கப்பட்டாலும் கூட. பயன்படுத்துவதன் மூலம் இது நிறுத்தப்படுகிறது stopService () முறை. அழைப்பதன் மூலம் சேவையும் தன்னை நிறுத்திக் கொள்ளலாம் stopSelf () முறை.

கட்டுண்டது

ஒரு பயன்பாட்டுக் கூறு அதை அழைப்பதன் மூலம் பிணைக்கும்போது ஒரு சேவை பிணைக்கப்பட்டுள்ளது bindService () . சேவையுடன் தொடர்புகொள்வதற்கும், கோரிக்கைகளை அனுப்புவதற்கும், முடிவுகளைப் பெறுவதற்கும் கூறுகளை அனுமதிக்கும் கிளையன்ட்-சர்வர் இடைமுகத்தை எல்லை சேவை வழங்குகிறது. இது இடை-செயல்முறை தொடர்பு (ஐபிசி) முழுவதும் செயலாக்குகிறது. கிளையன்ட் அழைப்பதன் மூலம் சேவையை பிணைக்க முடியும் unbindService () முறை.

Android சேவை வாழ்க்கை சுழற்சி- Android சேவைகள் பயிற்சி- Edureka

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 வெற்றிடத்தை உருவாக்கு ) registerReceiver (ரிசீவர், புதிய இன்டென்ட்ஃபில்டர் (DownloadService.NOTIFICATION)) ver ver ஓவர்ரைடு பாதுகாக்கப்பட்ட வெற்றிடத்தை onPause () {super.onPause () unregisterReceiver (ரிசீவர்)} பொது வெற்றிடத்தை onClick (பார்வை காண்க) {நோக்கம் நோக்கம் = புதிய நோக்கம் (இது, DownloadService.class) // எந்த கோப்பை பதிவிறக்கம் செய்ய வேண்டும், எங்கு செல்லலாம் store int.putExtra (DownloadService.FILENAME, 'index.html') உள்நோக்கம்

இந்த எடுத்துக்காட்டில், போன்ற முறைகளை நீங்கள் காணலாம் onCreate () , onResume () , onPause () . இந்த முறைகள் Android இல் உள்ள சேவைகளின் கட்டமைப்பை உருவாக்குகின்றன.

இப்போது, ​​இந்த Android சேவைகள் டுடோரியலின் நடைமுறை பகுதிக்கு வருவதைப் பார்ப்போம்ஒரு சேவையை உருவாக்கி அதை எவ்வாறு கையாள்வது.

டெமோ

பின்னணியில் இசையை எவ்வாறு இயக்குவது என்று பார்ப்போம். அதைச் செய்ய, நான் பயன்படுத்துவேன் ஆண்ட்ரியட் ஸ்டுடியோ .

படி 1

புதிய வெற்று திட்டத்தை உருவாக்கவும். உங்கள் திட்டத்திற்கு பெயரிட்டு ஜாவா கோப்புறையில் கிளிக் செய்து முக்கியமான செயல்பாடு . முதலில், சேர்க்கவும் மீடியா பிளேயர் இதன் மூலம் தொடக்க, சுழற்சியை அமைத்தல் போன்ற பிளேயர் விவரங்களை நீங்கள் இறக்குமதி செய்யலாம்.

தொகுப்பு com.example.mydemoapplication import androidx.appcompat.app.AppCompatActivity பொது வகுப்பு மெயின் ஆக்டிவிட்டி AppCompatActivity @ verOverride பாதுகாக்கப்பட்ட வெற்றிடத்தை உருவாக்கவும் (இது, Settings.System.DEFAULT_ALARM_ALERT_URI) player.setLooping (true) player.start ()}}

குறிப்பு: நீங்கள் இதை முதன்முறையாகப் பயன்படுத்துகிறீர்கள் என்றால், பயாஸை இயக்க மறக்க வேண்டாம். உங்கள் கணினியை மறுதொடக்கம் செய்வதன் மூலம் இதைச் செய்யலாம்.

நீங்கள் ஒரு மெய்நிகர் சாதனத்தை சேர்க்க வேண்டும். கிளிக் செய்தால் போதும் AVD மேலாளரைத் திறக்கவும்.

உங்களுக்கு விருப்பமான சாதனத்தைத் தேர்ந்தெடுக்கவும், நீங்கள் செல்லத் தயாராக உள்ளீர்கள்!

திரை செயலில் இருக்கும்போது மட்டுமே இது இயங்கும், ஆனால் இந்த பயன்பாடு பின்னணியில் கூட செயல்பட, நீங்கள் இன்னும் சில வரிகளின் குறியீட்டைச் சேர்க்க வேண்டும் செயல்பாடு_மெயின்.எக்ஸ்.எம்.எல் கோப்பு.

படி 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 பயன்பாட்டின் எக்ஸ்எம்எல் கோப்பைப் பெற.

  • உரைக்காட்சியை அகற்றி அதை லீனியர் லேஅவுட் மூலம் மாற்றி பொத்தான்களைச் சேர்க்கவும். தொடர்புடைய குறியீட்டைச் சேர்க்கவும்.
<லீனியர் லேஅவுட் Android: நோக்குநிலை= 'செங்குத்து' Android: தளவமைப்பு_அகலம்= 'match_parent' Android: தளவமைப்பு_ உயரம்= 'மடக்கு_ உள்ளடக்கம்' Android: Layout_centerVertical= 'உண்மை' கருவிகள்: புறக்கணிக்கவும்= 'விடுபட்ட கட்டுப்பாடுகள்'><பொத்தானை Android: ஐடி= 'id + id / buttonStart' Android: உரை= 'சேவையைத் தொடங்கு' Android: தளவமைப்பு_அகலம்= 'மடக்கு_ உள்ளடக்கம்' Android: தளவமைப்பு_ உயரம்= 'match_parent'/><பொத்தானை Android: ஐடி= 'id + id / buttonStop' Android: உரை= 'சேவையை நிறுத்து' Android: தளவமைப்பு_அகலம்= 'மடக்கு_ உள்ளடக்கம்' Android: தளவமைப்பு_ உயரம்= 'match_parent'/>லீனியர் லேஅவுட்>
  • நீங்கள் இதைச் செய்தவுடன், மீண்டும் செல்லுங்கள் முக்கியமான செயல்பாடு எக்ஸ்எம்எல் கோப்பு மற்றும் இணைக்கும் பொருட்டு தொடர்புடைய குறியீட்டைச் சேர்க்கவும் MyServiceClass.
தொகுப்பு com. .activity_main) start = (பொத்தான்) findViewById (R.id.buttonStart) stop = (பொத்தான்) findViewById (R.id.buttonStop) start.setOnClickListener (இது) stop.setOnClickListener (இது) public public பொது வெற்றிடத்தை காண்க ) {if (view == start) {startService (புதிய நோக்கம் (இது, MyServiceClass.class))} else if (view == stop) {stopService (புதிய நோக்கம் (இது, MyServiceClass.class))}}}

படி 4

வகுப்புகளை இணைத்து முடித்ததும், குறியீட்டை இயக்குவோம்.

குறிப்பு: AndroidManifiest.xml கோப்பில் சேவை வகுப்பு பெயரைச் சேர்க்கவும்.

அடுத்து, குறியீட்டை இயக்குவோம்.

நீங்கள் சேவையைத் தொடங்கியதும், மற்றொரு பயன்பாடு திறந்தாலும் அது பின்னணியில் இயங்கும். பொத்தான்களைக் கிளிக் செய்வதன் மூலம் சேவையைத் தொடங்கலாம் அல்லது நிறுத்தலாம்.

இது ஒரு எளிய டெமோ ஆகும், அங்கு நீங்கள் Android சேவைகளுடன் எவ்வாறு செயல்படுவது என்பதைக் கற்றுக்கொண்டீர்கள்.

எனவே, இந்த கட்டுரையின் முடிவில் “Android Services Tutorial” இல் வருகிறோம்.இந்த வலைப்பதிவில் உள்ளடக்கப்பட்ட தலைப்புகளுடன் நீங்கள் தெளிவாக இருக்கிறீர்கள் என்று நம்புகிறேன்.

இப்போது நீங்கள் எங்கள் Android சேவைகள் டுடோரியல் வலைப்பதிவின் மூலம் சென்றுள்ளீர்கள், நீங்கள் எடுரேகாவைப் பார்க்கலாம் உங்கள் கற்றலை விரைவாகத் தொடங்க.

ஏதேனும் கேள்விகள் உள்ளதா? இந்த “Android Services Tutorial” வலைப்பதிவின் கருத்துகளில் அவற்றைக் குறிப்பிட மறக்க வேண்டாம். நாங்கள் உங்களிடம் திரும்புவோம்.