20

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

4

2 回答 2

46

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

IntentServiceonHandleIntent()如果在运行时没有向它发送更多命令,它会在结束时自动停止onHandleIntent()。因此,您不必IntentService自己手动停止。

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

这就是为什么你不这样做。

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

然后你让IntentService停止本身。

于 2012-04-20T17:37:51.440 回答
5

IntentService没有更多Intents(作业)要处理时,它会自行停止。它stopSelf(startId)为每个Intent(作业)运行。看看IntentService源代码或Extending the Service Class从这里http://developer.android.com/guide/topics/fundamentals/services.html

于 2012-04-20T17:37:47.243 回答