أوضح لك الدرس السابق طريقة إنشاء صف JobIntentService
. يوضّح لك هذا الدرس كيفية تشغيل JobIntentService
لتشغيل عملية من خلال إضافة العمل إلى قائمة المحتوى التالي باستخدام Intent
.
يمكن أن يحتوي Intent
اختياريًا على بيانات لمعالجة JobIntentService
.
إنشاء طلب عمل وإرساله إلى JobIntentService
لإنشاء طلب عمل وإرساله إلى
JobIntentService
،
يمكنك إنشاء Intent
وإدراجه في قائمة الانتظار
ليتم تنفيذه من خلال طلب
enqueueWork()
.
يمكنك اختياريًا إضافة بيانات إلى الغرض (في شكل إضافات النية) لكي تعالجها JobIntentService. لمزيد من المعلومات عن إنشاء الأغراض، اقرأ القسم "إنشاء هدف" في فلاتر الأهداف والغايات.
وتوضّح مقتطفات الرمز التالية هذه العملية:
-
أنشِئ
Intent
جديدًا من أجلJobIntentService
باسمRSSPullService
.
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
.