原文地址:http://android.xsoftlab.net/training/run-background-service/send-request.html
上节课我们学习了如何创建IntentService。这节课我们主要学习如何通过Intent使IntentService执行工作请求。Intent可以将任何数据交给IntentService处理。你可以在Activity或者Fragment的任意方法内发送Intent给IntentService。
创建并发送工作请求到IntentService
为了创建一个工作请求并将其发送给IntentService,首先我们需要创建一个显式 的Intent对象,然后向其添加请求数据,最后再通过startService()将它发送到IntentService。
下面的代码演示了这个过程:
-
- 为名RSSPullService的IntentService创建一个显式 的Intent。
/*
* 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));
// Starts the IntentService
getActivity().startService(mServiceIntent);
注意,你可以在Activity或者Fragment的任何地方发送工作请求。举个例子,如果你需要先获得用户的输入数据,那么就可以将工作请求的发送代码放在Button按钮的点击回调内。
一旦调用了startService(),那么IntentService将会在onHandleIntent()方法内执行工作请求,并且它会在任务完成后自动停止。
下一个步骤就是如何将工作的完成结果反馈给请求调用处。下一节课将会学习如何使用BroadcastReceiver完成这个过程。