Intern
Kāda ir atšķirība starp fonu pakalpojumu un fonu pakalpojumu Android?
sobes.tech AI
Atbilde no AI
Atšķirība starp parasto fonu pakalpojumu un ierobežoto (restricted) pakalpojumu parādījās ar Android 8.0 (API 26).
Parasts fonu pakalpojums:
- Var darboties bez ierobežojumiem fonā.
- Sistēma to var pārtraukt resursu trūkuma dēļ, bet tas var tikt palaists atkārtoti, ja
onStartCommand()atgriežSTART_STICKY. - Nav nepieciešams lietotājam redzams paziņojums (lai gan tas nav labākā prakse UX).
- Var patērēt ievērojamu akumulatora un CPU resursu.
Ierobežots fonu pakalpojums (attiecas ierobežojumi):
- Pakalpojums, kas tiek palaists fonā bez redzamiem aktivitātēm vai citām "balto sarakstu" (privilegētiem nosacījumiem), saskaras ar resursu izmantošanas ierobežojumiem.
- Galvenie ierobežojumi ietver:
- Fona darba ierobežojums: Pakalpojums var tikt apturēts sistēmas īsā laikā (parasti dažas minūtes) pēc tam, kad lietojumprogramma pāriet fonā.
- Aizliegts palaist jaunus fonu pakalpojumus: Fona lietojumprogramma nevar palaist jaunus pakalpojumus ar
startService(). Tā vietā jāizmantoJobSchedulervaiWorkManager. - Ierobežojums saņemt plašsaziņas ziņojumus: Netiešie plašsaziņas ziņojumi (implicit broadcasts) manifestā tiks ignorēti. Lietojumprogrammai jāreģistrē tieši saņēmēji vai jāizmanto
JobScheduler/WorkManager.
- Šo ierobežojumu mērķis ir uzlabot akumulatora darbības laiku un ierīces veiktspēju, ierobežojot neefektīvu resursu izmantošanu fonā.
Kā pakalpojums kļūst neierobežots (sistēmas acīs):
- Lietojumprogramma atrodas priekšplānā (lieta aktīvi ar to mijiedarbojas).
- Lietojumprogramma sāk redzamu pakalpojumu (foreground service), kas rāda pastāvīgu paziņojumu lietotājam.
- Lietojumprogramma veic noteiktus uzdevumus (piemēram, plašsaziņas ziņojumu apstrādi,
JobScheduleruzdevumu izpildi), kas pagaidu izņem to no pilnīgas neracionālas fonā darba stāvokļa.
Galvenā atšķirība: Ar Android 8.0 un jaunākām versijām, fonā darbojošs pakalpojums bez redzamas lietotāja aktivitātes vai redzama servisa tiks ierobežots sistēmas pēc resursu pieejamības un ilgstoša darba iespējas. Parasts "fonu pakalpojums" līdz Android 8.0 varēja darboties bez šādiem stingriem ierobežojumiem.