القيود المفروضة على بدء الأنشطة في الخلفية

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

يقدم هذا الدليل الإشعارات كبديل لبدء الأنشطة من الخلفية. كما تسرد أيضًا الحالات المحددة التي لا ينطبق فيها التقييد.

عرض الإشعارات بدلاً من ذلك

في جميع الحالات تقريبًا، يجب أن تعرض التطبيقات الموجودة في الخلفية إشعارات حساسة للوقت لتوفير معلومات عاجلة للمستخدم بدلاً من بدء نشاط مباشرةً. تتضمن مثل هذه الإشعارات التعامل مع مكالمة هاتفية واردة أو منبه نشط.

يوفر نظام التنبيهات والتذكير المستند إلى الإشعارات العديد من المزايا للمستخدمين:

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

الأوقات التي يمكن للتطبيقات فيها بدء أنشطة

يمكن للتطبيقات التي تعمل بنظام التشغيل Android 10 أو الإصدارات الأحدث بدء الأنشطة عند استيفاء واحد أو أكثر من الشروط التالية:

  • ظهور التطبيق بنافذة مرئية، مثلاً نشاط في المقدّمة.
  • يحتوي التطبيق على نشاط في الحزم الخلفية من المهمة التي تعمل في المقدّمة.
  • يحتوي التطبيق على نشاط في الحزمة الخلفية من مهمة حالية على شاشة "العناصر الأخيرة".

  • يحتوي التطبيق على نشاط بدأ منذ وقت قريب جدًا.

  • بدأ التطبيق المسمى finish() حول نشاط منذ فترة قريبة جدًا. لا ينطبق هذا الإجراء إلا عندما يتضمّن التطبيق نشاطًا في المقدّمة أو نشاطًا في الحزمة الخلفية من المهمة التي تعمل في المقدّمة في وقت استدعاء finish().

  • يحتوي التطبيق على إحدى الخدمات التالية المرتبطة بالنظام. قد تحتاج هذه الخدمات إلى تشغيل واجهة مستخدم.

  • يحتوي التطبيق على خدمة مرتبطة بتطبيق مختلف مرئي. ويجب أن يظل التطبيق المرتبط بالخدمة مرئيًا للتطبيق في الخلفية لبدء الأنشطة بنجاح.

  • يتلقى التطبيق الإشعار PendingIntent من النظام. وفي حال وجود نوايا في انتظار المراجعة للخدمات وأجهزة استقبال البث، يمكن للتطبيق بدء الأنشطة لبضع ثوانٍ بعد إرسال الغرض الذي في انتظار المراجعة.

  • يتلقّى التطبيق PendingIntent يتم إرساله من تطبيق مختلف مرئي.

    .
  • يتلقى التطبيق بثًا للنظام من المتوقع أن يبدأ فيه التطبيق في تشغيل واجهة مستخدم. تشمل الأمثلة ACTION_NEW_OUTGOING_CALL وSECRET_CODE_ACTION. يمكن للتطبيق بدء الأنشطة لبضع ثوانٍ بعد إرسال البث.

  • يتم ربط التطبيق بجهاز مصاحب من خلال واجهة برمجة تطبيقات CompanionDeviceManager. تتيح واجهة برمجة التطبيقات هذه للتطبيق بدء الأنشطة استجابةً للإجراءات التي ينفذها المستخدم على الجهاز المقترن.

  • التطبيق عبارة عن وحدة تحكّم بسياسة الجهاز تعمل في وضع مالك الجهاز. ومن أمثلة حالات الاستخدام: أجهزة المؤسسة المُدارة بالكامل بالإضافة إلى الأجهزة المخصّصة مثل اللوحات الرقمية والأكشاك.

  • يمنح المستخدم إذن SYSTEM_ALERT_WINDOW.