2.4.2 Қызметтер (Қызметтер) Қызмет (Service) - бұл фондық режимде ұзақ операцияларды орындауға арналған қосымшаның құрамдас бөлігі. Қызметтердің екі жолы бар:
* біріншісі-бұл қызмет іске қосылды (started) және фондық режимде өздігінен жұмыс істейді, сондықтан ол өз міндетін орындағанға дейін шексіз жұмыс істей алады;
* екіншісі-бұл қызмет белгілі бір компонентке немесе бірнеше компоненттерге байланысты (bound), бұл жағдайда қызмет компонентпен өзара әрекеттесу үшін интерфейсті ұсынады және барлық компоненттермен байланыс үзілгеннен кейін кем дегенде бір компонентке байланған кезде жұмыс істейді.қызмет өз жұмысын аяқтайды.
Қызметті құру үшін тікелей немесе оның кез-келген ұрпағы арқылы Service класының мұрагері класын құру қажет. Бұл жағдайда сыныпты іске асыруда қызметтің өмірлік циклінің негізгі аспектілерін басқаратын және тиісті жағдайда компоненттерді қызметпен байланыстыру механизмін қамтамасыз ететін кейбір әдістерді қайта анықтау қажет (яғни, олардың орындалуын жазу). Қызметті құру кезінде іске асыруды қажет ететін ең маңызды әдістерді қарастырыңыз.
onStartCommand () - белсенділік сияқты кейбір компонент startService () әдісін шақырған кезде жүйе шақыратын әдіс. Бұл жағдайда қызмет іске қосылады және фондық режимде шексіз жұмыс істей алады, сондықтан ол өз жұмысын аяқтаған кезде қызметті тоқтату туралы қамқорлық қажет. Қызметті тоқтату үшін stopSelf() әдісі Сервистің өзі жұмысын тоқтатқан жағдайда немесе stopservice() сервистің кейбір компоненті жұмысын тоқтатқан жағдайда қолданылады. 31 әдісті іске асыруды жазудың қажеті жоқonstartcommand (), егер қызметтің өзіндік жұмысы болжанбаса (яғни, ол тек кейбір компоненттермен бірге жұмыс істейді).
onBind () - кейбір компонент қызметті байланыстырғысы келетін және bindService () әдісін шақыратын жүйе шақыратын әдіс. Бұл әдіс ibinder интерфейсін енгізуді қайтаруы керек, оны клиент компоненті қызметпен өзара әрекеттесу үшін қолдана алады. OnBind () әдісі кез-келген жағдайда жүзеге асырылуы керек, бірақ егер қызмет қандай-да бір компоненттермен байланыстырылмаса, қайтарылады