2013-12-09 43 views
0

我有一个将图片和文本上载到服务器的IntentService。 onHandleIntent(意向意图)当IntentService停止时处理或收听

Intent intent = new Intent(this, MyIntentService.class); 
startService(intent); 

在服务上,在不同的点,我打电话stopSelf()终止服务:我推出一个服务,。我想知道服务何时停止,并在UI停止时处理UI中的更改。另外需要注意的是,用户可能与服务启动时处于不同的活动状态。

如何监听服务何时停止?

+0

你不能自己。不过,您可以使用广播。 – njzk2

+0

,或者如果您的服务更改了contentprovider中的数据,则contentprovider本身可能会通知数据已更改。 (这更有意义) – njzk2

+0

@ njzk2因此,使用广播接收器,我只需要在需要监听服务的任何活动中实例化广播接收器? – clocksmith

回答

1

我打电话stopSelf()终止服务

为什么?如果您想跳过逻辑,那很好,但请允许onHandleIntent()正常结束并自行致电stopSelf()。例如,可能有更多的排队等待处理的命令。

如何监听服务何时停止?

使用事件总线,如LocalBroadcastManagergreenrobot's EventBus

+0

好的,谢谢,我想我不得不打电话给stopSelf(),我不知道服务在完成处理意图时调用它自己。 – clocksmith

+0

@clocksmith:是的,'stopSelf()'是自动的。每个IntentService实例都免费。 :-) – CommonsWare