Raisons que le passé Intention serait NULLE dans onStartCommand

Est-il un autre motif que l'Intention qui est passé à onStartCommand(Intent, int, int) serait NULLE par ailleurs le système de redémarrer le service par l'intermédiaire d'un drapeau comme START_STICKY?

Aussi, lorsque le service est redémarré, le système Intent.getAction() méthode renvoie NULL... parfois. L'intention n'est pas NULL juste getAction()

J'ai demandé à ici aussi, mais n'ai pas reçu de réponse pour l'instant.

Mise à JOUR: Après avoir discuté avec Mark Murphy, il a suggéré que je reviens START_REDELIVER_INTENT dans le onStartCommand() de rappel dans mon service au lieu de START_STICKY de sorte que l'ensemble de l'intention est envoyé à la suite d'un redémarrage.

Je n'ai pas ce faire d'abord parce que j'étais inquiet que si le service a été de tenter de faire quelque chose, puis dans le milieu de quelque chose que le service a été redémarré... qu'il reconnaisse qu'il a commencé à faire quelque chose? Je suppose que c'est logique, j'ai besoin d'être responsable 🙂

  • Plutôt que d'éditer votre question avec la réponse, s'il vous plaît ajouter une réponse et de l'accepter, de sorte que votre question cessera d'apparaître dans la série de questions sans Réponse -- merci.
  • Juste une note pour quelqu'un avec le même problème. J'ai trouvé que lorsque je reçois l'erreur que intent est null sur onStartCommand(), elle est causée par une autre erreur qui est visible dans le LogCat avant cette. Je ne sais pas pourquoi, mais c'est ce que j'ai observé et il est très facile de l'oublier.
  • Je voudrais, mais cette question n'est pas vraiment résolu. Jusqu'à ce que je reçois une réponse définitive quant au pourquoi d'une Intention est null ou comment éviter de nulle intention sans recourir à l'aide de START_REDELIVER_INTENT (qui, je l'appris plus tard, n'est pas ce dont j'avais besoin, mais toujours résoudre certains problèmes donc j'ai quitté mon edit) je ne peux pas accepter une réponse.
  • Avez-vous un avis ce qui, précisément, a été de lancer une erreur?
  • N'a pas vraiment d'importance. Dans mon cas, c'était par exemple NullPointerException quelque part dans l'un des Activités. Plus tard, c'était une autre erreur. Mais dans les deux cas, ma trace de la pile a montré que mon service était en cours d'exécution tandis que cette erreur s'est produite - a intent qui a été null comme dans votre cas. Je pensais un temps assez long ce qui est mal, quand j'ai décidé de défiler jusqu'à la trace de la pile et il est apparu que quelque part en haut, j'ai eu mon erreur vraie. Après la résolution de celui-ci, également l'une avec null intent disparu.
  • Je suis surpris, il n'y a pas de discussion de l'entrée de drapeaux lorsqu'il démarre avec une valeur nulle intention. Il semble que le système doit communiquer quelque chose au sujet de pourquoi il a commencé de cette façon.
  • exactement droit +1. Je remonte et trouvé une autre erreur qui fait que le processus d'être tué.

InformationsquelleAutor rf43 | 2011-12-07