Existe algum outro motivo para que o Intent passado onStartCommand(Intent, int, int)
seja NULL, além de o sistema reiniciar o serviço por meio de um sinalizador como START_STICKY
?
Além disso, quando o serviço é reiniciado pelo sistema, o Intent.getAction()
método retorna NULL ... às vezes. Intent não é NULL, apenasgetAction()
Eu perguntei aqui também, mas ainda não recebi uma resposta.
ATUALIZAÇÃO : depois de conversar com Mark Murphy, ele sugeriu que eu retornasse START_REDELIVER_INTENT
no onStartCommand()
retorno de chamada em meu serviço em vez de START_STICKY
para que todo o intent fosse enviado após uma reinicialização.
Não fiz isso inicialmente porque estava preocupado com o fato de que, se o serviço estava tentando fazer algo, no meio de algo o serviço foi reiniciado ... ele reconhecerá que começou a fazer isso? Acho que é lógico que terei de ser responsável :)
intent
está null
ligado onStartCommand()
, é causado por algum outro erro que era visível no LogCat antes disso. Não sei por quê, mas foi o que observei e é muito fácil passar por alto.
NullPointerException
em algum lugar em uma das Atividades. Mais tarde, foi algum outro erro. Mas em ambos os casos, meu rastreamento de pilha mostrou que meu serviço - que estava em execução enquanto esse erro ocorreu - intent
era null
como no seu caso. Eu estive pensando por um longo tempo o que há de errado, quando decidi rolar o rastreamento da pilha e parecia que em algum lugar no topo eu tinha meu verdadeiro erro. Depois de resolver este, também aquele com null
intent
desapareceu.