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

Spe*_*ort 66 android android-service

在某些情况下,我的服务可能会尝试在不应该启动时启动.在这样的情况下stopSelf(),在onStartCommand()方法内部调用是不好的形式?如果是这样,处理这种情况的最佳方法是什么?任何资源将不胜感激.

Com*_*are 86

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

在我的头脑中,我想不出为什么那会是一个问题.

stopSelf()就像Android中的很多东西一样,没有立竿见影的效果.它在主应用程序线程处理的消息队列上放置一条消息.停止服务的实际工作甚至不会在onStartCommand()返回之后的某个时间开始.

  • @MarkCarter:大概是`START_NOT_STICKY`. (15认同)
  • @SpencerRuport:`stopSelf()`,就像Android中的很多东西一样,没有立竿见影的效果.它在主应用程序线程处理的消息队列上放置一条消息.停止服务的实际工作甚至不会在`onStartCommand()`返回后的某个时间开始. (9认同)
  • 作为一个后续问题,刚刚调用`stopSelf()`的适当返回值是什么? (4认同)
  • 我认为它不是,但我不完全确定Service类的内部工作方式,并调用一个函数,在它甚至完成一些启动相关事件之前阻止它启动似乎可能会导致一些不需要的行为,具体取决于它如何被设计. (3认同)