Dokumentācijas kļūda: manifesti reģistrētie apraides uztvērēji saņem ACTION_SHUTDOWN nolūkus operētājsistēmā Android 8.0

click fraud protection

Manifestēti reģistrētās apraides nolūki operētājsistēmā Android Oreo ir ierobežoti līdz dažiem, un ACTION_SHUTDOWN nav viens no tiem, vai ne?

Android daudzām lietām izmanto apraides nolūkus. Lietojumprogrammu izstrādātāji var klausīties, vai tie veic noteiktas darbības, piemēram, kad MEDIA_MOUNTED apraides mērķis ir lietojumprogrammas zināt, kad SD karte ir pievienota kā krātuve. Kā lietotņu izstrādātājs varat šim nolūkam ieprogrammēt apraides uztvērējus un pēc tam izsaukt funkciju ikreiz, kad ir uzstādīts multivide, piemēram, lai mainītu lietotnes noklusējuma krātuves direktoriju uz SD karti. Šāda veida lietas tiek izmantotas apraides nolūkos. Tos galvenokārt izmanto, lai pārraidītu noteiktus sistēmas notikumus jebkurām lietojumprogrammām, kurām šī informācija var būt nepieciešama. Apraides uztvērējiem ir jābūt reģistrētiem Android manifesta failā vai programmatiski, kad tie atrodas priekšplānā.

Atmiņas pārpilnības dēļ, ko izraisa daudzi dažādi izstrādātāji, ieviešot visa veida apraides uztvērējus, lai bieži palaistu, Google nolēma ierobežot piekļuvi lielākajai daļai šo apraides nolūku operētājsistēmā Android 8.0 Oreo. Tomēr uzņēmums atzina, ka ir daži svarīgi apraides nolūki, kas ir pareizi joprojām jāuzklausa, jo tie nenotiek tik bieži, un tāpēc tiem ir maz iespēju izraisīt atmiņu jautājumiem. Viņi 

publicēja netiešo apraides balto sarakstu Android lietojumprogrammas joprojām var klausīties, reģistrējot apraides uztvērējus Android manifestā. Šis ir plašs saraksts un aptver gandrīz visu, kas jums kā lietotņu izstrādātājam var būt nepieciešams, ar vienu izņēmumu.

Šķiet, ka Google nenorādīja apraides nolūku, ko izmanto daudzas lietojumprogrammas. Tas ir ACTION_SHUTDOWN apraides nolūks. Šis nolūks tiek nosūtīts, kad ierīce tiek izslēgta, un tas var būt ļoti svarīgi lietotņu izstrādātājiem, lai viņi varētu ātri pārtraukt lietotnes darbību, pirms process tiek pārtraukts. Neskatoties uz to, ka šis apraides nolūks nav redzams baltajā sarakstā iekļauto nolūku, lietojumprogrammu sarakstā var patiesībā joprojām klausieties to, izmantojot manifestā reģistrētu apraides uztvērēju saskaņā ar apņemšanos Android Git vienkārši Google aizmirsa to iekļaut savā sarakstā.

Tas ir lieliski, ka tas faktiski ir iekļauts baltajā sarakstā, jo Google no lietojumprogrammām atņem iespēju noteikt, kad ierīce tiek izslēgta. būtu slikti gan lietotājiem, gan lietotņu izstrādātājiem, jo ​​dažas lietojumprogrammas vairs nevarētu ātri saglabāt darbu pirms ierīces izslēgšanas. Mēs neesam pilnīgi pārliecināti, kāpēc šis apraides nolūks nav norādīts Google izstrādātāju lapā, taču mēs runājām ar Android izstrādātāju veterānu. CommonsWare un viņš piekrīt, ka tā, visticamāk, ir vienkārša Google dokumentācijas kļūda. Pēc viņa teiktā, tā nebūtu pirmā reize, kad tas notiek.