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,但在我的服务中,我只是通过网络呼叫来更新位置等。我不需要确定情况,但喜欢你的方法。也许下次我需要这么做。非常感谢。我会回答这个问题。