正确的方法来停止IntentService

时间:2012-04-20 17:25:15

标签: android intentservice

我正在使用IntentService将图像上传到服务器。我的问题是我不知道如何/何时停止服务。当我在onHandleIntent(Intent ..)中调用stopself()时,将删除在IntentService队列中等待的所有Intents。但我不想停止活动中的服务,因为我想完成上传过程,即使我的应用程序没有运行。

2 个答案:

答案 0 :(得分:43)

  

我的问题是我不知道如何/何时停止服务。

如果在IntentService运行时没有向其发送更多命令,

onHandleIntent()会在onHandleIntent()结束时自动停止。因此,您不要自己手动停止IntentService

  

当我在onHandleIntent(Intent ..)中调用stopself()时,将删除在IntentService队列中等待的所有Intents。

这就是你不这样做的原因。

  

但是我不想停止活动中的服务,因为我想完成上传过程,即使我的应用程序没有运行。

然后你让IntentService自行停止。

答案 1 :(得分:4)

IntentService不再需要处理Intent个(作业)时,stopSelf(startId)会自动停止。它为每个Intent(作业)运行IntentService。请查看Extending the Service Class来源或此处的{{1}} http://developer.android.com/guide/topics/fundamentals/services.html