バックグラウンドで実行されるIntentSerivceことがありますが、場合によっては非常に長時間実行されるプロセスになる可能性があります。GCM基本的には停止してポーリングし、プッシュ通知を無視するアプリケーションを終了するオプションをユーザーに提供します。ただし、プッシュ通知が届き、IntentService必要な処理が完了するまでに時間がかかる場合(サーバーから情報を取得し、必要に応じて、新しいメッセージが到着したなどの通知をユーザーに送信します)。
intentserviceここに問題があります。ユーザーがまだ実行中にアプリを「終了」することを選択した場合でも、私が望まない通知を受け取ることになります。サービスの方法があることは知ってstopSelf()いますが、ユーザーがメニューボタンを使用してアプリケーションを「終了」することを知っている場合は、アクティビティでサービスを停止する必要があります。intentインテントがキューに入れられ、アクティビティの呼び出しも機能しないため、サービスへの別の送信は機能しcontext.stopService(intent);ません。他にどのように停止できますか?