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

Calling startService() multiple times on a running service

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

如果我调用 startService() 3 次而它已经是 运行,我是否必须调用 stopService() 3 次才能让它停止? (是不是有一堆waiting intent?) 还是只用一次就完蛋了?

If I start a Service 3 times while it is already running, do I have to call stopService 3 times to make it stop?

没有。一个stopService()就够了

I know it's not a good practice to do so

当然可以。如果需要,您的 activity(或调用 startService() 的任何东西)可以盲目调用 startService(),而不知道或不关心服务是否已启动和 运行。例如,如果您要实现 IntentService 来处理中型文件的下载,那么 activity 可以调用 startService() 来处理用户想要的任意数量的下载。请注意,IntentService 在没有更多工作要做时会自行停止。