我可以在Service.onStartCommand中调用stopSelf()吗?


70

在某些情况下,本应在不应该启动我的服务的情况下进行尝试。在这种情况下stopSelf(),在onStartCommand()方法内部进行调用会导致错误的形式吗?如果是这样,处理这种情况的最佳方法是什么?任何资源将不胜感激。

Answers:


90

在onStartCommand()方法中调用stopSelf()的形式不好吗?

从我的头顶上,我想不出为什么那会是个问题。

stopSelf(),就像Android中的许多内容一样,没有立竿见影的效果。它将一条消息放入由主应用程序线程处理的消息队列中。停止服务的实际工作甚至要等到onStartCommand()返回后的某个时间才能开始。


3
我认为不是,但是我不太确定Service类的内部工作原理,并且调用一个函数来停止它,直到它还没有完成之前,就发生了一些与启动有关的事件,这取决于它的运行方式,被设计。
Spencer Ruport

9
@SpencerRuport:,stopSelf()就像Android中的很多东西一样,没有立竿见影的效果。它将一条消息放入由主应用程序线程处理的消息队列中。停止服务的实际工作甚至要等到onStartCommand()返回后的某个时间才能开始。
CommonsWare,

5
作为后续问题,刚刚调用的合适的返回值是stopSelf()多少?
2015年

17
@MarkCarter:大概是START_NOT_STICKY
CommonsWare
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.