可以从 Android Service onStartCommand() 中调用 stopSelf() 吗?

Is it ok to call stopSelf() from within Android Service onStartCommand() ?

我有一个服务,当被调用时,它会检查一些状态值,并且根据状态,可能需要异步调用一些东西(locationmanager + asynctask),或者只是保存一个值并退出。

我创建了一个服务而不是一个 intentservice,因为正如我提到的,我有时需要创建异步任务。

我已经阅读了有关服务的内容,我想我应该在完成后调用 stopSelf。但是在我不需要做任何事情的情况下,当我退出 onStartCommand 时我就完成了。

那么,如果我在那个时候完成了,只在 onStartCommand 的最后一行调用 stopSelf 会起作用吗?这种方法有什么问题吗?

感谢您的投入。

如果您只是在服务中执行if检查,为什么不在启动服务之前执行该检查,从而避免消耗宝贵的资源?

回答您的问题 - 是的,stopSelf() 会导致 Service 停止,但如果不使用服务,请考虑甚至不启动它。