先前的課程介紹了
JobIntentService 類別。這個
本課程將說明如何觸發
JobIntentService 來執行
使用 Intent 將工作排入佇列。
這個Intent可以
視需要納入
JobIntentService 來處理工作。
建立工作要求並傳送至 JobIntentService
如何建立工作要求並傳送至
JobIntentService、
建立 Intent 並排入佇列
執行時,系統會呼叫
enqueueWork()。
您也可以選擇將相關資料新增至意圖 (以意圖額外項目的形式),
要處理的 JobIntentService。如要進一步瞭解如何建立意圖,請參閱
意圖和意圖篩選器中的意圖區段
下列程式碼片段可說明這個程序:
-
為
IntentJobIntentService「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。