上一堂課將說明如何建立 JobIntentService
類別。本課程說明如何使用 Intent
將工作排入佇列,觸發 JobIntentService
執行作業。這個 Intent
可以選擇包含 JobIntentService
要處理的資料。
建立工作要求並傳送至 JobIntentService
如要建立工作要求並傳送至 JobIntentService
,請建立 Intent
,然後呼叫 enqueueWork()
將其加入佇列以便執行。您可以選擇將資料新增至意圖 (以意圖額外項目的形式),讓 JobIntentService 進行處理。如要進一步瞭解如何建立意圖,請參閱「意圖和意圖篩選器」中的「建立意圖」一節
以下程式碼片段示範這個程序:
-
為
JobIntentService
建立名為RSSPullService
的新Intent
。
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
執行這項操作。