Гоогле застарева Андроид-ов АсинцТаск АПИ у Андроид-у 11

Андроид АПИ за асинхрону логику, АсинцТаск, излази. Према АОСП урезивању, АПИ ће бити застарео у Андроиду 11.

Већ годинама, Андроид-ов АсинцТаск је основни алат за почетнике и стручне програмере. Ако сте икада тражили водич за било коју врсту асинхроне логике у Андроиду, велике су шансе да првих неколико резултата предлаже коришћење АсинцТаск-а. Није ни ово као случајан избор. АсинцТаск је првобитно креиран да поједностави интеракцију између позадинских операција и корисничког интерфејса апликације. Неко време је то добро радило. АсинцТаск заиста помаже у поједностављивању асинхроних задатака. То, међутим, не значи да је савршено.

Једна ствар коју многе апликације треба да ураде је да преузму информације са удаљеног сервера. Пошто мрежни захтеви могу да потрају, обично је важно да их урадите асинхроно како не би изазвали замрзавање апликације. Када се операција заврши, кориснички интерфејс се може ажурирати. Међутим, могуће је да до тренутка када се мрежни захтев заврши, релевантни део корисничког интерфејса више не постоји, што може да изазове падове или друге грешке. Иако АсинцТаск чини укупан процес једноставнијим, он не поштује животни циклус Андроид апликације. То значи да не постоји уграђена заштита од завршетка АсинцТаск-а након промене корисничког интерфејса. Наравно, могуће је ручно додати провере и друге заштите, али то додаје много кода за понављање (АКА шаблон). Због оваквих проблема, АсинцТаск је некако пао са стране. Гоогле такође није направио много промена у начину на који функционише.

Па, изгледа да је Гуглово мишљење да АсинцТаск није могуће сачувати. У недавном АОСП урезивању, АсинцТаск је застарео, наводећи разлоге сличне онима о којима сам управо говорио. Иако ово није огромна промена за крајње кориснике, може много значити за програмере. Ако одржавате старију кодну базу или тек почињете са асинхроним задацима у Андроиду, вероватно ћете морати да промените гомилу кода. Међутим, на срећу, Гоогле није оставио програмере у прашини.

Због ограничења АсинцТаск-а, временом су се појавиле алтернативе, као што су РкЈава и Котлинова нова (исх) Цороутинес библиотека. Ове алтернативе имају много више флексибилности и могућности од АсинцТаск-а, тако да су стекле прилично популарност. У свом обавештењу о застаревању за АсинцТаск, Гоогле препоручује коришћење Јава Цонцурренци фрамеворк-а или Котлин Цороутинес.

Лично, већ сам почео да користим Котлинове Цороутинес и нисам се осврнуо. Наравно, знам да су многи људи чврсто интегрисали свој код око АсинцТаск-а, тако да им ово вероватно представља барем малу непријатност. Добро је што постоји много алтернатива које можете изабрати. Можда је непријатно да промените свој код, али барем је могуће овај пут.

Ако желите више детаља, можете погледати урезивање овде. Урезивање је спојено раније данас и осим ако није у припреми издање за одржавање Андроид-а, видећемо да се ова промена одрази на Андроид 11 следеће године.