onStartCommand(Intent, int, int)
などのフラグを介してシステムがサービスを再起動する以外に、渡されるインテントがNULLになる理由は他にありますSTART_STICKY
か?
また、サービスがシステムによって再起動されると、Intent.getAction()
メソッドはNULLを返します...時々。意図はNULLだけではないgetAction()
更新:Mark Murphyとチャットした後、再起動後にインテント全体が送信されるようにする代わりに、サービスSTART_REDELIVER_INTENT
のonStartCommand()
コールバックで戻ることを提案しましたSTART_STICKY
。
サービスが何かを実行しようとした場合、その途中でサービスが再起動されたのではないかと心配していたので、最初はこれを実行しませんでした...サービスはその何かを開始したことを認識しますか?それは私が責任を負う必要があるロジックだと思います:)
16
回答で質問を編集するのではなく、回答を追加して承認してください。そうすれば、質問が未回答の質問のセットに表示されなくなります-ありがとう。
—
デールウィルソン
同様の問題を持つ誰かのためのちょうどメモ。私はエラーを取得通常時にことがわかっ
—
Piotr Chojnacki 2013年
intent
ているnull
上にonStartCommand()
、それはこの前LogCatに表示されている他のいくつかのエラーが原因です。理由はわかりませんが、これは私が観察したものであり、見落としがちです。
@DaleWilson私はそうしますが、この質問は本当に解決されていません。インテントがnullである理由、またはSTART_REDELIVER_INTENTを使用せずにnullインテントを回避する方法に関する明確な回答を受け取るまで(これは後で学習しましたが、一部の人々の問題を解決するため、編集を残しました)回答はお受けできません。
—
rf43
@Mosquito具体的には何がエラーをスローしているかに気づきましたか?
—
rf43
@DDoSAttack本当に重要ではありません。私の場合、それは例えば
—
Piotr Chojnacki 2013年
NullPointerException
、アクティビティのどこかにありました。後でそれはいくつかの他のエラーでした。しかし、どちらの場合でも、私のスタックトレースは、このエラーが発生しているときに実行されていた私のサービスがあなたの場合と同じでintent
あったことを示しましたnull
。スタックトレースを上にスクロールすることに決めたとき、何が問題なのかをかなり長い間考えていましたが、上部のどこかに本当のエラーがあるように見えました。これを解いた後、null
intent
消えたものも。