0

インテントで追加データを取得し、適切に機能するレコーディング サービスを作成しています。私は START_REDELIVER_INTENT を使用して、開始コマンドごとに元の意図と同じ設定で記録を開始しますが、onStartCommand の現在の呼び出しが明示的な startService またはプロセスのクラッシュによるものかどうかを知る必要があります。

だから私の質問は、startServiceリクエストの結果として発生したonStartCommandの呼び出しと、明示的なstopSelf\stopServiceなしでサービスがクラッシュ\クローズした後にシステムが呼び出したonStartCommand呼び出しを区別する方法は?

4

1 に答える 1

1

onStartCommand の flags パラメータを見てください。

0 の場合は、「通常」の開始です。

フラグに START_FLAG_REDELIVERY が含まれている場合は、サービスが強制終了されて再起動された後に再配信されたインテントです。

フラグに START_FLAG_RETRY が含まれている場合、おそらくクラッシュ後に再試行されるインテントですが、他の状況が考えられます。

于 2013-12-20T04:31:41.087 に答える