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

Android 对正在运行的服务多次调用startService(),android,android-service,Android,Android Service,这只是一个知识问题,我知道这样做不是一个好的做法。这就是: 如果在运行时调用startService()3次,是否必须调用stopService()3次才能使其停止?(它是否有一堆等待的意图?) 如果我在服务已经运行时启动了3次,我是否必须调用stopService 3次才能使其停止 不。一个stopService()就足够了 我知道这样做不是一个好习惯 当然是。如果需要,您的活动(或任何调用startService())可以盲目调用startService(),而不知道或不关心服务是否已启动并

这只是一个知识问题,我知道这样做不是一个好的做法。这就是:

如果在运行时调用
startService()
3次,是否必须调用
stopService()
3次才能使其停止?(它是否有一堆等待的意图?)

如果我在服务已经运行时启动了3次,我是否必须调用stopService 3次才能使其停止

不。一个
stopService()
就足够了

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

当然是。如果需要,您的活动(或任何调用
startService()
)可以盲目调用
startService()
,而不知道或不关心服务是否已启动并运行。例如,如果您正在实现一个
IntentService
来处理中等大小文件的下载,则该活动可以调用
startService()
来获得用户想要的任意数量的下载。请注意,
IntentService
在没有更多工作要做时会自动停止

如果我在服务已经运行时启动了3次,我是否必须调用stopService 3次才能使其停止

不。一个
stopService()
就足够了

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


当然是。如果需要,您的活动(或任何调用
startService()
)可以盲目调用
startService()
,而不知道或不关心服务是否已启动并运行。例如,如果您正在实现一个
IntentService
来处理中等大小文件的下载,则该活动可以调用
startService()
来获得用户想要的任意数量的下载。请注意,
IntentService
在没有更多工作要做时会自动停止。

嘿,我们在启动服务之前检查正在运行的服务怎么样,就像我的回答:@YasinKaçmaz:通常,我会尽量避免这种模式。为什么要避免,有什么特殊原因吗。我在我的应用程序中使用了这种模式,但从未出错?@YasinKaçmaz:如果活动希望启动服务,它会调用
startService()
。如果活动希望了解有关服务状态的信息,请使用绑定服务并从
活页夹中获取状态,或者使用事件总线。我还没有遇到这样的情况:活动只需要知道服务已启动(这是您的方法所能确定的),而不能只调用
startService()
。欢迎你做你想做的事;我只是避免使用你的方法。我明白,我也在使用eventbus,但在我的服务中,我只是通过网络呼叫来更新位置等。我不需要确定情况,但喜欢你的方法。也许下次我需要这么做。非常感谢。我会喜欢这个问题。嘿,我们在开始服务之前检查运行的服务怎么样,比如我的回答:@YasinKaçmaz:一般来说,我试图避免这种模式。为什么要避免,有什么特殊原因吗。我在我的应用程序中使用了这种模式,但从未出错?@YasinKaçmaz:如果活动希望启动服务,它会调用
startService()
。如果活动希望了解有关服务状态的信息,请使用绑定服务并从
活页夹中获取状态,或者使用事件总线。我还没有遇到这样的情况:活动只需要知道服务已启动(这是您的方法所能确定的),而不能只调用
startService()
。欢迎你做你想做的事;我只是避免使用你的方法。我明白,我也在使用eventbus,但在我的服务中,我只是通过网络呼叫来更新位置等。我不需要确定情况,但喜欢你的方法。也许下次我需要这么做。非常感谢。我会回答这个问题。