لقد أوضحنا الدرس السابق كيفية إنشاء
صف واحد (JobIntentService
). هذا النمط
كيفية تشغيل
JobIntentService
لتشغيل عملية من خلال
إضافة العمل إلى قائمة الانتظار مع Intent
.
يمكن لـ Intent
هذا
تحتوي بشكل اختياري على بيانات
JobIntentService
ستتم المعالجة.
إنشاء طلب عمل وإرساله إلى JobIntentService
لإنشاء طلب عمل وإرساله إلى
JobIntentService
،
إنشاء Intent
وإدراجه في قائمة الانتظار
يمكن تنفيذها من خلال استدعاء
enqueueWork()
يمكنك اختياريًا إضافة بيانات إلى الغرض (في شكل عناصر إضافية) من أجل
ستتم معالجة JobIntentService. لمزيد من المعلومات حول إنشاء الأهداف، اقرأ مقالة
قسم الأهداف في فلاتر الأهداف وفلاتر الأهداف
وتوضح مقتطفات الرمز التالية هذه العملية:
-
إنشاء
Intent
جديد تم الاتصال برقمRSSPullService
من قِبلJobIntentService
.
Kotlin
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = Intent().apply { putExtra("download_url", dataUrl) }
Java
/* * Creates a new Intent to start the RSSPullService * JobIntentService. Passes a URI in the * Intent's "data" field. */ serviceIntent = new Intent(); serviceIntent.putExtra("download_url", dataUrl));
-
الاتصال بـ
enqueueWork()
Kotlin
private const val RSS_JOB_ID = 1000 RSSPullService.enqueueWork(context, RSSPullService::class.java, RSS_JOB_ID, serviceIntent)
Java
// Starts the JobIntentService private static final int RSS_JOB_ID = 1000; RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
ولاحظ أنه يمكنك إرسال طلب العمل من أي مكان في "نشاط" أو "جزء". مثلاً، إذا كنت بحاجة إلى الحصول على إدخالات المستخدم أولاً، يمكنك إرسال الطلب من معاودة الاتصال تستجيب للنقر على زر أو إيماءة مشابهة.
بعد الاتصال بـ
enqueueWork()
,
تؤدي "JobIntentService
" المهمة المحدّدة في
onHandleWork()
، ثم يتوقف نفسه.
تتمثل الخطوة التالية في إبلاغ نتائج طلب العمل مرة أخرى بسجل نشاط
أو جزء. يوضح الدرس التالي كيفية القيام بذلك باستخدام
BroadcastReceiver