בשיעור הקודם למדתם איך ליצור כיתה ב-JobIntentService
. במדריך הזה נסביר איך להפעיל את JobIntentService
כדי להריץ פעולה על ידי הוספת עבודה לתור באמצעות Intent
.
ה-Intent
יכול להכיל נתונים לעיבוד על ידי JobIntentService
.
יצירת בקשת עבודה ושליחתה ל-JobIntentService
כדי ליצור בקשת עבודה ולשלוח אותה אל
JobIntentService
,
יוצרים Intent
ומעבירים אותו לתור לביצוע באמצעות קריאה ל-
enqueueWork()
.
אפשר גם להוסיף נתונים ל-Intent (כתוספת Intent) כדי לעבד את JobIntentService. למידע נוסף על יצירת כוונות, אפשר לקרוא את הקטע 'יצירת Intent' במאמר מסננים של Intent וכוונות.
קטעי הקוד הבאים מדגימים את התהליך:
-
יוצרים
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);
שימו לב שניתן לשלוח את בקשת העבודה מכל מקום בפעילות או במקטע. לדוגמה, אם אתם צריכים לקבל קודם קלט מהמשתמש, תוכלו לשלוח את הבקשה מ-callback שמגיב ללחיצה על לחצן או לתנועה דומה.
אחרי שמפעילים את
enqueueWork()
,
ה-
JobIntentService
מבצע את העבודה שמוגדרת ב-method
onHandleWork()
שלו, ואז מפסיק את עצמו.
השלב הבא הוא לדווח על תוצאות בקשת העבודה בחזרה לפעילות
או ל-Fragment המקוריים. בשיעור הבא נסביר איך לעשות זאת באמצעות BroadcastReceiver
.