Dokumentaatiovirhe: Ilmennetyt rekisteröidyt lähetysvastaanottimet saavat ACTION_SHUTDOWN Intentsin Android 8.0:ssa

Ilmeiset rekisteröityjen lähetysten aikeet rajoittuvat vain muutamaan Android Oreossa, eikä ACTION_SHUTDOWN ole yksi niistä, vai onko?

Android käyttää lähetystarkoituksia moniin asioihin. Sovelluskehittäjät voivat kuunnella heidän suorittavan tiettyjä toimintoja, kuten silloin, kun MEDIA_MOUNTED-lähetystarkoituksessa sovellukset saavat tietää, milloin SD-kortti on asennettu tallennustilaksi. Sovelluksen kehittäjänä voit ohjelmoida lähetysvastaanottimia tähän ja kutsua sitten toiminnon aina, kun media on asennettu, esimerkiksi vaihtaaksesi sovelluksen oletustallennushakemiston SD-kortille. Tällaisiin asioihin lähetystarkoituksia käytetään. Niitä käytetään useimmiten lähettämään tiettyjä järjestelmätapahtumia sovelluksille, jotka saattavat tarvita kyseisiä tietoja. Lähetysvastaanottimet on joko rekisteröitävä Android Manifest -tiedostoon tai ohjelmallisesti, kun ne ovat etualalla.

Koska monet erilaiset kehittäjät toteuttavat kaikenlaisia ​​lähetyksiä, on paljon muistia Vastaanottimia usein laukaisutarkoituksiin, Google päätti rajoittaa pääsyn useimpiin näistä lähetystavoitteista Androidissa 8.0 Oreo. Yritys tunnusti kuitenkin, että oli olemassa pari tärkeää lähetystarkoitusta, jotka ovat kunnossa silti kuunnellaan, koska niitä ei esiinny kovin usein ja siksi niillä on vähän mahdollisuuksia aiheuttaa muistia ongelmia. Ne 

julkaisi implisiittisten lähetysten sallittujen luettelon Android-sovellukset voivat edelleen kuunnella niitä rekisteröimällä lähetysvastaanottimia Android Manifestiin. Tämä on laaja luettelo ja kattaa melkein kaiken, mitä sovelluskehittäjänä saatat tarvita, yhtä poikkeusta lukuun ottamatta.

Näyttää siltä, ​​että Google ei ole listannut lähetystarkoitusta, jota monet sovellukset käyttävät. Tämä on ACTION_SHUTDOWN lähetystarkoituksessa. Tämä tarkoitus lähetetään, kun laite sammuu, mikä voi olla erittäin tärkeää sovellusten kehittäjille, jotta he voivat nopeasti lopettaa sovelluksen tekemät asiat ennen kuin prosessi lopetetaan. Huolimatta siitä, että tämä lähetystarkoitus ei näy sallittujen luettelossa olevien tarkoitusten, sovellusten luettelossa voi itse asiassa kuuntele sitä edelleen Manifest-rekisteröidyn lähetysvastaanottimen kautta sitoumuksen mukaan Android Gitissä Google vain unohti sisällyttää sen luetteloonsa.

On hienoa, että se on itse asiassa sallittujen luettelossa, koska Google poistaa sovelluksista mahdollisuuden havaita, milloin laite sammuu olisi huono sekä käyttäjille että sovellusten kehittäjille, koska jotkin sovellukset eivät enää pystyisi nopeasti säästämään työtä ennen laitteen sammuttamista. Emme ole täysin varmoja, miksi tämä lähetysaihe ei ole listattu Googlen kehittäjäsivulla, mutta keskustelimme kokeneen Android-kehittäjän kanssa. CommonsWare ja hän myöntää, että kyseessä on todennäköisesti yksinkertainen Googlen dokumentointivirhe. Hänen mukaansa tämä ei olisi ensimmäinen kerta, kun näin tapahtuu.