Sobes.tech
Intern

Android-də arxa plan xidməti ilə arxa plan xidməti arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Android 8.0 (API 26) ilə birlikdə, adi fon xidməti ilə məhdudlaşdırılmış (restricted) fon xidməti arasındakı fərq ortaya çıxdı.

Adi fon xidməti:

  • Məhdudiyyətsiz vaxtda fon rejimində işləyə bilər.
  • Sistem resurs çatışmazlığı zamanı onu dayandıra bilər, lakin START_STICKY onStartCommand()-də geri qaytarılsa, yenidən başlatıla bilər.
  • İstifadəçiyə görünən bildirişlər tələb etmir (baxmayaraq ki, bu UX baxımından ən yaxşı təcrübə deyil).
  • Batareya və CPU resurslarını əhəmiyyətli dərəcədə istifadə edə bilər.

Məhdudlaşdırılmış fon xidməti (tətbiq olunan məhdudiyyətlər):

  • Görünən fəaliyyətlər və ya digər "ağ siyahılar" (əlavə şərtlər) olmadan fon rejimində başlatılan xidmət, resurs istifadəsində məhdudiyyətlərlə üzləşir.
  • Əsas məhdudiyyətlər bunlardır:
    • Fon rejimində işləmə məhdudiyyəti: Sistem, tətbiq fon rejiminə keçdikdən sonra qısa müddət (adətən bir neçə dəqiqə) içində xidməti dayandıra bilər.
    • Yeni fon xidmətlərinin başlamasının qadağan olunması: Fon tətbiqi startService() ilə yeni fon xidmətləri başlada bilməz. Bunun yerinə JobScheduler və ya WorkManager istifadə olunmalıdır.
    • Broadcast mesajlarının alınmasında məhdudiyyət: Manifestdəki dolayı broadcast mesajlar (implicit broadcasts) nəzərə alınmayacaq. Tətbiq açıq şəkildə broadcast qəbul edənləri qeydiyyatdan keçirməli və ya JobScheduler/WorkManager istifadə etməlidir.
  • Bu məhdudiyyətlərin məqsədi batareyanın ömrünü və cihazın performansını yaxşılaşdırmaq, fon tətbiqlərinin resurslardan irrasyonel istifadəsini məhdudlaşdırmaqdır.

Xidmətin məhdudiyyətdən çıxması (sistem baxımından aktivləşməsi):

  • Tətbiq ön planda (istifadəçi aktiv şəkildə onunla qarşılıqlı əlaqədədir).
  • Tətbiq görünən xidmət başlatır (foreground service), bu da istifadəçiyə davamlı bildiriş göstərir.
  • Tətbiq müəyyən tapşırıqları yerinə yetirir (məsələn, broadcast mesajlarının işlənməsi, JobScheduler tapşırıqlarının icrası), bu da onu tam irrasyonel fon rejimindən müvəqqəti çıxarır.

Əsas fərq: Android 8.0 və yuxarı versiyalarda, istifadəçi görünən fəaliyyəti və ya görünən xidməti olmayan fon xidməti, sistem tərəfindən resurslara çıxış və uzunmüddətli işləmə baxımından məhdudlaşdırılacaqdır. Android 8.0-dan əvvəlki adi "fon xidməti" bu cür sərt məhdudiyyətlər olmadan işləyə bilərdi.