تقوم Google بإيقاف واجهة برمجة تطبيقات AsyncTask لنظام Android في Android 11

click fraud protection

واجهة برمجة تطبيقات Android للمنطق غير المتزامن، AsyncTask، في طريقها للخروج. وفقًا لالتزام AOSP، سيتم إهمال واجهة برمجة التطبيقات (API) في Android 11.

لسنوات حتى الآن، كان AsyncTask لنظام Android أداة أساسية للمطورين المبتدئين والخبراء على حد سواء. إذا سبق لك أن بحثت في Google عن برنامج تعليمي لأي نوع من المنطق غير المتزامن في Android، فمن المحتمل أن النتائج القليلة الأولى تشير إلى استخدام AsyncTask. ليس الأمر كما لو كان هذا اختيارًا عشوائيًا أيضًا. تم إنشاء AsyncTask في الأصل لتبسيط التفاعل بين عمليات الخلفية وواجهة مستخدم التطبيق. لفترة من الوقت، فعلت ذلك بشكل جيد. يساعد AsyncTask حقًا في تبسيط المهام غير المتزامنة. هذا لا يعني أنها مثالية، رغم ذلك.

الشيء الوحيد الذي يتعين على الكثير من التطبيقات القيام به هو الحصول على المعلومات من خادم بعيد. نظرًا لأن طلبات الشبكة يمكن أن تستغرق بعض الوقت، فمن المهم عادةً تنفيذها بشكل غير متزامن حتى لا تتسبب في تجميد التطبيق. بمجرد اكتمال العملية، يمكن تحديث واجهة المستخدم. ومع ذلك، فمن الممكن أنه بحلول الوقت الذي يكتمل فيه طلب الشبكة، لن يعد الجزء ذي الصلة من واجهة المستخدم موجودًا، مما قد يتسبب في حدوث أعطال أو أخطاء أخرى. على الرغم من أن AsyncTask يجعل العملية برمتها أكثر بساطة، إلا أنه لا يحترم دورة حياة تطبيقات Android. وهذا يعني عدم وجود حماية مضمنة ضد انتهاء AsyncTask بعد تغيير واجهة المستخدم. بالطبع، من الممكن إضافة عمليات التحقق ووسائل الحماية الأخرى يدويًا، ولكن هذا يضيف الكثير من التعليمات البرمجية المتكررة (AKA المعيارية). بسبب مشاكل كهذه، تعثر AsyncTask نوعًا ما. لم تقم Google أيضًا بإجراء العديد من التغييرات على كيفية عملها.

حسنًا، يبدو أن رأي Google هو أن AsyncTask لا يمكن حفظه. في التزام AOSP الأخير، تم إهمال AsyncTask، مع ذكر أسباب مشابهة لتلك التي تحدثت عنها للتو. على الرغم من أن هذا لا يمثل تغييرًا كبيرًا للمستخدمين النهائيين، إلا أنه قد يعني الكثير للمطورين. إذا كنت تحتفظ بقاعدة تعليمات برمجية قديمة أو كنت قد بدأت للتو في تنفيذ مهام غير متزامنة في Android، فمن المحتمل أن يتعين عليك تغيير مجموعة من التعليمات البرمجية. لكن لحسن الحظ، لم تترك جوجل المطورين في الغبار.

بسبب قيود AsyncTask، ظهرت البدائل مع مرور الوقت، مثل مكتبة Coroutines الجديدة من RxJava وKotlin. تميل هذه البدائل إلى التمتع بمرونة وميزات أكثر بكثير من AsyncTask، لذلك اكتسبت قدرًا كبيرًا من الشعبية. في إشعار الإيقاف الخاص بـ AsyncTask، توصي Google باستخدام إطار عمل Java Concurrency أو Kotlin Coroutines.

أنا شخصياً بدأت بالفعل في استخدام Coroutines من Kotlin ولم أنظر إلى الوراء. بالطبع، أعلم أن العديد من الأشخاص قد قاموا بدمج التعليمات البرمجية الخاصة بهم بإحكام حول AsyncTask، لذلك ربما يكون هذا على الأقل مصدر إزعاج بسيط لهم. إنه لأمر جيد أن هناك الكثير من البدائل للاختيار من بينها. قد يكون تغيير التعليمات البرمجية أمرًا مزعجًا، لكنه على الأقل ممكن هذه المرة.

إذا كنت تريد المزيد من التفاصيل، يمكنك التحقق من الالتزام هنا. تم دمج الالتزام في وقت سابق اليوم، وما لم يكن هناك إصدار صيانة لنظام Android قيد التنفيذ، فسنرى هذا التغيير ينعكس في Android 11 العام المقبل.