Google poistaa käytöstä Androidin AsyncTask APIn Android 11:ssä

click fraud protection

Asynkronisen logiikan Android-sovellusliittymä, AsyncTask, on tulossa ulos. AOSP-sitoumuksen mukaan sovellusliittymä poistetaan käytöstä Android 11:ssä.

Androidin AsyncTask on ollut jo vuosien ajan perustyökalu sekä aloittelijoille että kokeneille kehittäjille. Jos olet koskaan Googlettanut opetusohjelmaa minkäänlaisesta asynkronisesta logiikasta Androidissa, on todennäköistä, että ensimmäiset tulokset ehdottavat AsyncTaskin käyttöä. Ei tämäkään ole satunnainen valinta. AsyncTask luotiin alun perin yksinkertaistamaan taustatoimintojen ja sovelluksen käyttöliittymän välistä vuorovaikutusta. Hetken aikaa se onnistui hyvin. AsyncTask todella auttaa yksinkertaistamaan asynkronisia tehtäviä. Se ei kuitenkaan tarkoita, että se olisi täydellinen.

Yksi asia, jonka monet sovellukset tarvitsevat, on napata tiedot etäpalvelimelta. Koska verkkopyynnöt voivat kestää hetken, on yleensä tärkeää tehdä ne asynkronisesti, jotta ne eivät aiheuta sovelluksen jumiutumista. Kun toiminto on valmis, käyttöliittymä voidaan päivittää. On kuitenkin mahdollista, että kun verkkopyyntö valmistuu, käyttöliittymän asianmukaista osaa ei enää ole, mikä voi aiheuttaa kaatumisia tai muita virheitä. Vaikka AsyncTask tekee kokonaisprosessista yksinkertaisemman, se ei kunnioita Android-sovelluksen elinkaarta. Tämä tarkoittaa, että siinä ei ole sisäänrakennettua suojausta AsyncTask-viimeistelyltä käyttöliittymän muutoksen jälkeen. Tietenkin on mahdollista lisätä manuaalisesti shekkejä ja muita suojauksia, mutta se lisää paljon toistokoodia (AKA-kattila). Tällaisten ongelmien vuoksi AsyncTask on tavallaan jäänyt sivuun. Google ei myöskään ole tehnyt paljon muutoksia toimintaansa.

No, näyttää siltä, ​​​​että Googlen mielipide on, että AsyncTask ei ole tallentamaton. Äskettäisessä AOSP-sitoumuksessa AsyncTask poistettiin käytöstä, vedoten samoihin syihin kuin juuri puhuin. Vaikka tämä ei todellakaan ole valtava muutos loppukäyttäjille, se voi tarkoittaa paljon kehittäjille. Jos ylläpidät vanhempaa koodikantaa tai olet vasta aloittamassa asynkronisia tehtäviä Androidissa, joudut todennäköisesti vaihtamaan joukkoa koodia. Onneksi Google ei kuitenkaan ole jättänyt kehittäjiä pölyyn.

AsyncTaskin rajoitusten vuoksi vaihtoehtoja on syntynyt ajan myötä, kuten RxJava ja Kotlinin uusi (ish) Coroutines-kirjasto. Näillä vaihtoehdoilla on yleensä paljon enemmän joustavuutta ja ominaisuuksia kuin AsyncTaskilla, joten ne ovat saavuttaneet melkoisen suosion. Google suosittelee AsyncTaskin vanhentumisilmoituksessaan Java Concurrency -kehyksen tai Kotlin Coroutinesin käyttöä.

Henkilökohtaisesti olen jo alkanut käyttää Kotlinin Coroutineja, enkä ole katsonut taaksepäin. Tietenkin tiedän, että monet ihmiset ovat integroineet koodinsa tiukasti AsyncTaskin ympärille, joten tämä on luultavasti ainakin pieni haitta heille. On hyvä, että on paljon vaihtoehtoja, joista valita. Koodin vaihtaminen voi olla ärsyttävää, mutta ainakin tällä kertaa se on mahdollista.

Jos haluat lisätietoja, voit tarkistaa sitoumuksen tässä. Sitoumus yhdistettiin aiemmin tänään, ja ellei Android-huoltojulkaisua ole valmisteilla, tämä muutos näkyy Android 11:ssä ensi vuonna.