Pogreška u dokumentaciji: manifestirani registrirani prijemnici emitiranja primaju ACTION_SHUTDOWN namjere u Androidu 8.0

click fraud protection

Manifest registrirane namjere emitiranja ograničene su na samo nekoliko u Android Oreo, a ACTION_SHUTDOWN nije jedna od njih, zar ne?

Android koristi namjere emitiranja za mnoge stvari. Programeri aplikacija mogu ih slušati kako bi izvršili određene radnje, primjerice kada MEDIA_MOUNTED emitira namjeru da aplikacije znaju kada je SD kartica postavljena kao pohrana. Kao razvojni programer aplikacije, možete programirati prijemnike emitiranja za to, a zatim pozvati funkciju svaki put kada se montira medij, na primjer, za promjenu zadanog direktorija za pohranu aplikacije na SD karticu. Za takve se stvari koriste namjere emitiranja. Uglavnom se koriste za emitiranje određenih događaja u sustavu svim aplikacijama koje bi mogle trebati te informacije. Prijemnici emitiranja moraju biti registrirani u datoteci manifesta Androida ili programski kada su u prvom planu.

Zbog obilja gubitka memorije uzrokovanog mnogim programerima koji implementiraju sve vrste emitiranja prijemnika za često aktiviranje namjera, Google je odlučio ograničiti pristup većini tih namjera emitiranja u Androidu 8.0 Oreo. Tvrtka je ipak prepoznala da postoji nekoliko važnih namjera emitiranja koje je u redu još uvijek treba osluškivati ​​budući da se ne pojavljuju tako često i stoga imaju male šanse izazvati pamćenje pitanja. Oni 

objavio popis dopuštenih implicitnih emisija namjere koje Android aplikacije i dalje mogu slušati registracijom prijemnika emitiranja u Android Manifestu. Ovo je opširan popis i pokriva gotovo sve što vam kao razvojnom programeru aplikacije može trebati, uz jednu iznimku.

Čini se da Google nije naveo namjeru emitiranja koju koriste mnoge aplikacije. Ovo je AKCIJA_ISKLJUČIVANJE namjera emitiranja. Ova se namjera šalje kada se uređaj gasi, što može biti vrlo važno programerima aplikacija kako bi mogli brzo prekinuti sve što aplikacija radi prije nego što se proces prekine. Unatoč tome što se ova namjera emitiranja ne pojavljuje na popisu namjera s popisa dopuštenih, aplikacije limenka zapravo ga još uvijek slušaju putem prijemnika za emitiranje registriranog u Manifestu prema obvezati se na Android Gitu, samo ga je Google zaboravio uključiti na svoj popis.

Sjajno je što je zapravo na popisu dopuštenih jer Google uklanja mogućnost aplikacijama da detektiraju kada se uređaj gasi bilo bi loše i za korisnike i za programere aplikacija jer neke aplikacije više ne bi mogle brzo spremiti rad prije gašenja uređaja. Nismo u potpunosti sigurni zašto ova namjera emitiranja nije navedena na Googleovoj stranici za programere, ali razgovarali smo s veteranskim programerom za Android CommonsWare i slaže se da se vjerojatno radi o jednostavnoj pogrešci u dokumentaciji od strane Googlea. Prema njegovim riječima, to ne bi bilo prvi put da se to događa.