先前的課程介紹了
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);
請注意,您可以從 Activity 或 Fragment 中的任一處傳送工作要求。 舉例來說,如需先取得使用者輸入內容,您可以透過回呼傳送要求 回應按鈕點選或類似手勢。
當您呼叫 之後
enqueueWork()
,
JobIntentService
會執行其中定義的工作
onHandleWork()
方法,然後自行停止。
下一步是將工作要求的結果回報給原始 Activity
或 Fragment下一堂課將說明如何透過
BroadcastReceiver
。