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