يضغط المستخدم «إلغاء الرفع» فتختفي علامة التحميل، ثم يجد الملف داخل حسابه عند العودة. لا يثبت ذلك وحده أن زر الإلغاء لم يعمل؛ ربما وصل الطلب للخادم قبل توقف العامل المحلي. تحتاج تصميمًا يوضح ما تم إلغاؤه وما يحتاج التحقق منه في الجهة الأخرى.
افهم ما يوقفه WorkManager
توضح وثائق Android لإدارة العمل إمكان الإلغاء بمعرف المهمة أو اسمها أو وسمها. العمل المنتهي لا يتغير بالإلغاء، والعمل الجاري يتلقى إشارة توقف، وعلى التنفيذ التعاون لإيقاف المعالجة وتحرير الموارد. إلغاء كل الأعمال ذات الوسم قد يشمل أكثر من ملف؛ اختر النطاق بعناية.
هذه آلية لتنظيم العمل داخل التطبيق، وليست وعدًا بأن الخادم سيتراجع عن أثر استلمه بالفعل. إذا احتجت حذف ملف محفوظ أو إلغاء طلب تجاري، فصمم إجراء خادم منفصلًا بصلاحيات وقواعد واضحة، ولا تسمه ضمنيًا نتيجة حتمية لزر الإلغاء المحلي.
جهز مصفوفة توقيت بملف مصطنع
| وقت الضغط | ما تفحصه |
|---|---|
| قبل بدء العمل | حالة المهمة وعدم بدء الرفع لاحقًا |
| أثناء نقل الملف | التوقف التعاوني وتنظيف الموارد |
| بعد حفظ الخادم وقبل وصول الرد | تمييز النتيجة غير المؤكدة من الفشل |
| بعد اكتمال المهمة | عدم الإيحاء بأن الإلغاء أعاد الحالة القديمة |
سجل معرف المهمة ومعرف الملف التجريبي، وافحص الخادم من مسار قراءة مستقل. لا تختبر السيناريو على مستند عميل حقيقي. أضف شبكة بطيئة وانقطاع اتصال لتتمكن من ملاحظة الفاصل بين حفظ الخادم وتلقي التطبيق للرد.
اختبر العودة وإعادة المحاولة
أغلق الشاشة ثم افتحها من جديد. هل تعرض الحالة المحفوظة، أم تبدأ رفعًا آخر لأن الواجهة فقدت معرف المهمة؟ عند الشك اعرض حالة تحقق مناسبة بدل نجاح أو فشل جازم. راجع سياسة منع التكرار على الخادم إذا سمح التصميم بإعادة المحاولة.
حدد لغة الإجراء ودليل نجاحه
ضمن تطوير تطبيق Android اطلب من الفحص التقني توثيق حالة العامل والملف كلًا على حدة. معيار القبول أن يتوقف العمل الممكن إيقافه، وتبقى الواجهة صادقة بشأن ما اكتمل أو ما زال يحتاج تحققًا، دون افتراض أن CANCELLED يمحو أثرًا بعيدًا.




