Labarotoriya ishlari uchun topshiriqlar.
1. Berilgan butun sonli kvadrat matritsa {aij} (1 2. Berilgan butun sonli kvadrat matritsa {aij} (1 3. {aij} (1
27-laboratoriya mashg'uloti: Swift dasturlash tili. Klasslar va ob’ektlar. init() metodi. Xususiyatlar. Statik xususiyatlar va metodlar.
Ishning maqsadi: Qo'shimcha xizmatlar bilan tanishish
Nazariy qism.
Android -dagi xizmatlar (xizmatlar) fon jarayonlari sifatida ishlaydi va android.app.Service klassi bilan ifodalanadi. Ularda foydalanuvchi interfeysi yo'q va ular bilan hech qanday aloqa talab qilinmaydigan hollarda kerak bo'ladi. Xizmatlar fonda ishlaydi, veb -serverga tarmoq so'rovlarini yuboradi, ma'lumotlarni qayta ishlaydi, bildirishnomalarni ishga tushiradi va hokazo. Xizmatni ishga tushirish mumkin va kimdir to'xtatmaguncha yoki o'z -o'zidan to'xtaguncha davom etadi. Xizmatlar faoliyatdan farqli o'laroq mo'ljallangan. Ular doimiy ravishda qayta ishga tushirish, doimiy vazifalarni bajarish yoki uzoq vaqt talab qiladigan vazifalarni bajarish orqali ishlashi mumkin.
Mijoz dasturlari xizmatlarga ulanishni o'rnatadi va xizmat bilan bog'lanish uchun ushbu ulanishdan foydalanadi. Bir nechta mijoz dasturlari bir xil xizmat bilan aloqa o'rnatishi mumkin.
Android xizmatlarga bo'sh ishlarga qaraganda ustuvor ahamiyat beradi, shuning uchun ular resurslar etishmasligi tufayli to'xtab qolish ehtimoli kamroq. Asosan, agar tizim ishlayotgan xizmatni muddatidan oldin to'xtatib qo'yishi kerak bo'lsa, uni etarli resurslar paydo bo'lishi bilanoq qayta ishga tushirish uchun sozlash mumkin. Haddan tashqari holatlarda, xizmatning uzilishi (masalan, musiqa ijro etilishining kechikishi) foydalanuvchining dastur tajribasiga sezilarli ta'sir qiladi va bunday holatlarda xizmatning ustuvorligi oldingi darajadagi faollik darajasiga ko'tarilishi mumkin..
Xizmatdan foydalansangiz, sizning ilovalaringiz ishlamay qolsa ham, ular voqealarga javob berishda davom etishiga amin bo'lishingiz mumkin. Xizmatlar ishlash uchun alohida grafik interfeysga muhtoj emas, lekin ular baribir dasturning asosiy oqimida ishlaydi. Ilovangizning javob berish qobiliyatini yaxshilash uchun siz Thread va AsyncTask sinflari yordamida ko'p vaqt talab qiladigan jarayonlarni (masalan, tarmoq so'rovlari) fon oqimlariga ko'chirishingiz kerak.
Xizmatlar doimiy yoki takrorlanuvchi operatsiyalarni bajarish uchun, hatto sizning ilovangiz faoliyati ko'rinmas, passiv yoki yopiq bo'lsa ham, hodisalarni boshqarish uchun juda mos keladi.
Xizmatlar ilovaning turli komponentlaridan, shu jumladan boshqa xizmatlar, harakatlar va eshittirish qabul qiluvchilaridan ishga tushiriladi, to'xtatiladi va nazorat qilinadi. Agar sizning ilovangiz foydalanuvchilarning to'g'ridan -to'g'ri o'zaro ta'siriga bog'liq bo'lmagan vazifalarni bajarsa, xizmatlar yaxshi tanlov bo'lishi mumkin.
Yugurish xizmatlari har doim bo'sh yoki ko'rinmas faoliyatdan ustun turadi, shuning uchun resurslar ajratilganda ular muddatidan oldin tugashi ehtimoli kamroq. Android -ning Xizmatni muddatidan oldin to'xtatib qo'yishiga yagona sabab - bu birinchi navbatda ishlaydigan komponentlar uchun qo'shimcha resurslarni ajratish (odatda mashg'ulotlar uchun). Agar shunday bo'ladigan bo'lsa, etarli resurslar mavjud bo'lganda, sizning xizmatingiz avtomatik ravishda qayta boshlanadi.
Amaliy qism.
Xizmat foydalanuvchi bilan to'g'ridan -to'g'ri muloqot qilganda (masalan, musiqa ijro etishda), uning ustuvorligini oldingi planda ishlaydigan harakatlar darajasiga ko'tarish kerak bo'lishi mumkin. Bu xizmat faqat oxirgi chora sifatida to'xtatilishini kafolatlaydi, lekin bu uning ishlash muddatini qisqartiradi va resurslarni boshqarishga xalaqit beradi, bu esa ilovaning umumiy tajribasini buzishi mumkin.
Muntazam ravishda yangilanib turadigan, lekin juda kamdan -kam hollarda yoki foydalanuvchi bilan tartibsiz aloqada bo'lgan ilovalarni xizmatlar ko'rinishida amalga oshirish uchun dastlabki nomzodlar deb atash mumkin. MP3 pleerlar va sportni kuzatish uchun ilovalar - bu faollikni ko'rsatmasdan doimiy ishlashi va yangilanishi kerak bo'lgan dasturlarga misol.
Xizmat yaratish
Xizmatni aniqlash uchun siz asosiy xizmat sinfini kengaytiradigan yangi sinf yaratishingiz kerak. Android Studio'da xizmat ko'rsatish uchun sinf yaratish uchun siz tayyor sehrgardan foydalanishingiz mumkin. Java papkasini (yoki paket nomini) o'ng tugmasini bosing va New | Service | Service:
Keyingi oynada xizmat nomini tanlang (katakchalarni qoldiring) va Finish tugmasini bosing.
Keling, bo'sh joy olaylik..
// Kotlin
package ru.alexanderklimov.service
import android.app.Service
import android.content.Intent
import android.os.IBinder
class MyService : Service() {
override fun onBind(intent: Intent): IBinder {
TODO("Return the communication channel to the service.")
}
}
// Java
package ru.alexanderklimov.service;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
}
Bunday holda, xizmat avtomatik ravishda bo'limdagi manifestda ro'yxatdan o'tkaziladi .
android:name=".MyService"
android:enabled="true"
android:exported="true" >
Agar biz sehrgar ekranidagi katakchalarni olib tashlasak, ikkala atribut ham noto'g'ri bo'ladi. Masalan, eksport qilingan atribut boshqa ilovalarga xizmatingizga kirishga ruxsat beradi.
Boshqa atributlar mavjud, masalan, ruxsatnoma, shuning uchun xizmat faqat sizning arizangiz orqali boshlanadi.
Siz sehrgarsiz ham qilishingiz mumkin va qo'lda xizmat ko'rsatish klassini va manifestda yozuv yaratishingiz mumkin, endi siz uning nimadan iboratligini bilasiz..
Xizmat muddati
Faoliyat singari, xizmatning ham o'z hayot tsikli mavjud:
Do'stlaringiz bilan baham: |