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