5

、サービスの「onStartCommand()」はドキュメントに従った、paramとして与えられた意図を持っている:この与えられたとしてヌル意図)Androidのドキュメントで

Intentは、startService(Intent)に供給されます。プロセスが終了して、サービスが再開されていて、以前にSTART_STICKY_COMPATIBILITY以外のものが返されていた場合は、nullになることがあります。

ただし、戻り値START_REDELIVER_INTENTは、サービスの再起動時に元のインテントを返すことになっています。

flagSTART_REDELIVER_INTENTに設定されていても、intentがヌルになる可能性がある理由は誰でも説明できますか?

+0

+1:同じ動作が観察されています.START_REDELIVER_INTENTはnullのインテントを与えます。しかし、デバイスのほとんどはアルプス、テックノ、ウィコのようなよく知られているブランドではありません。私は今のところ主流ブランドを見ていない。 –

+0

実際には、他のいくつかの問題を見て、** Itel **デバイスのonStartCommand()でNullPointerExceptionが発生してGoogleのcom.google.android.gms.measurement.AppMeasurementServiceがクラッシュすることがわかりました。 intentがnullであるかどうかをチェックすることなく、intent.getAction()を実行するように見えます。彼らはSTART_NOT_STICKYを使用します。サービスは再起動されないはずです(ヌルインテントを避ける必要があります)。 –

答えて

1

おそらくSTART_FLAG_REDELIVERYSTART_REDELIVER_INTENTを混同していますか?あなたの投稿は「戻り値START_FLAG_REDELIVERY」と言っています。この定数は、onStartCommandから返された値の1つではなく、onStartCommandに渡されたビット値の1つで、flagsパラメータです。 START_FLAG_REDELIVERYSTART_STICKYの両方に値1があります。の末尾に誤ってreturn START_FLAG_REDELIVERYがある場合、保留中の開始通知がない場合、サービスは固定モードでヌルインテントで再開します。

関連する問題