在正在运行的服务上多次调用startService()

Jay*_*ing 1 android android-service

这只是一个知识问题,我知道这样做不是一个好习惯。所以这里是:

如果startService()已经运行了stopService()3次,是否必须停止3次?(它有一堆等待的意图吗?)还是只有一次将其永久杀死?

Com*_*are 5

如果服务已经运行了3次,我是否必须调用stopService 3次以使其停止?

不,一个stopService()就足够了。

我知道这样做不是一个好习惯

当然是啦。如果需要,您的活动(或正在呼叫的任何东西startService())可以在startService()不知道或不在乎该服务是否已启动和运行的情况下盲目致电。例如,如果您实现IntentService用于处理中型文件下载的,则该活动可以调用startService()用户想要的任意数量的下载。注意,IntentService当它没有更多工作要做时,它会自行停止。

  • @YasinKaçmaz:如果活动希望启动服务,则调用`startService()`。如果活动想要了解有关服务状态的信息,请使用绑定的服务并从“活页夹”中获取状态,或使用事件总线。我还没有遇到这样的情况,活动*仅*需要知道服务已启动(这是您的方法可以确定的)*并且*不能仅调用`startService()`。欢迎您做您想做的事;我只是避免你的做法。 (3认同)