The previous lesson showed you how to create a JobIntentService class. This lesson shows you how to trigger theJobIntentService to run an operation by enqueuing work with an Intent. This Intent can optionally contain data for the JobIntentService to process.
教你咋把Intent enqueue
To create a work request and send it to a JobIntentService, create an Intent and enqueue it to be executed by calling enqueueWork(). Optionally you can add data to the intent (in the form of intent extras) for the JobIntentService to process. For more information about creating intents, read the Building an intent section in Intents and Intent Filters
创建并发送work request到 JobIntentService
The following code snippets demonstrate this process:
看下文
Create a new Intent for the JobIntentService called RSSPullService.
1.创建Intent
/* * 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));2.Call enqueueWork()
调用 enqueueWork
// Starts the JobIntentService private static final int RSS_JOB_ID = 1000; RSSPullService.enqueueWork(getContext(), RSSPullService.class, RSS_JOB_ID, serviceIntent);
Notice that you can send the work request from anywhere in an Activity or Fragment. For example, if you need to get user input first, you can send the request from a callback that responds to a button click or similar gesture.
这个request在Activity或者Fragment 的任何地方都能调用
Once you call enqueueWork(), the JobIntentService does the work defined in its onHandleWork() method, and then stops itself.
调用 enqueueWork,则JobIntentService 在onHandleWork里面 does the work,干完活自己stop
The next step is to report the results of the work request back to the originating Activity or Fragment. The next lesson shows you how to do this with a BroadcastReceiver.
下文讲如何report the result(通过广播)