onStartCommand(Intent, int, int)
除了系统通过诸如这样的标志重新启动服务之外,传递给Intent的其他任何原因还有START_STICKY
吗?
同样,当服务由系统重新启动时,该Intent.getAction()
方法有时会返回NULL...。意图不是NULLgetAction()
我也问过这里,但是还没有收到答案。
UPDATE:马克·墨菲聊天后,他建议我返回START_REDELIVER_INTENT
的onStartCommand()
回调在我的服务,而不是START_STICKY
使整个意图在重新启动发送。
最初我没有这样做是因为我担心如果服务正在尝试执行某项操作,那么在此过程中,服务会重新启动...它会认识到它开始执行该操作吗?我想这是我需要负责的逻辑:)
16
请添加答案并接受,而不是用答案来编辑您的问题,这样您的问题将不会出现在未回答的问题集中-谢谢。
—
戴尔·威尔逊
只是给有类似问题的人的笔记。我发现,通常当我得到错误
—
Piotr Chojnacki
intent
是null
上onStartCommand()
,它是由一些其他错误是可见的logcat此之前造成的。我不知道为什么,但这是我观察到的,很容易忽略它。
@DaleWilson我会的,但这个问题并未得到真正解决。直到收到关于为什么Intent为null或如何避免不使用null意图而不求助于使用START_REDELIVER_INTENT的明确答案(我后来了解到,这不是我所需要的,但仍然可以解决某些人的问题,因此我离开了编辑)我不能接受答案。
—
rf43 2013年
@Mosquito您是否恰巧注意到发生了什么错误?
—
rf43 2013年
@DDoSAttack并不重要。以我为例
—
Piotr Chojnacki
NullPointerException
,它位于“活动”之一中的某个位置。后来又是其他错误。但是在两种情况下,我的堆栈跟踪都表明我的服务(在发生此错误时正在运行intent
)null
与您的情况相同。当我决定向上滚动堆栈跟踪并且似乎在顶部某个地方出现了我的真正错误时,我一直在思考什么地方出了问题。解决这一问题后,也null
intent
消失了。