The previous lesson showed you how to create an
IntentService
class. This
lesson shows you how to trigger the
IntentService
to run an operation by
sending it an
Intent
. This
Intent
can
optionally contain data for the
IntentService
to process. You can
send an
Intent
to an
IntentService
from any point
in an
Activity
or
Fragment
Create and Send a Work Request to an IntentService
To create a work request and send it to an
IntentService
, create an
explicit
Intent
, add work request data to it, and send it to
IntentService
by calling
startService()
.
The next snippets demonstrate this:
-
Create a new, explicit
Intent
for theIntentService
calledRSSPullService
.
/* * Creates a new Intent to start the RSSPullService * IntentService. Passes a URI in the * Intent's "data" field. */ mServiceIntent = new Intent(getActivity(), RSSPullService.class); mServiceIntent.setData(Uri.parse(dataUrl));
-
Call
startService()
// Starts the IntentService getActivity().startService(mServiceIntent);
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.
Once you call
startService()
,
the
IntentService
does the work defined in its
onHandleIntent()
method, and then stops itself.
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
.