IntentServiceを使用して画像をサーバーにアップロードしています。私の問題は、サービスをいつどのように停止するかわからないことです。 onHandleIntent(Intent ..)でstopself()を呼び出すと、IntentServiceキューで待機しているすべてのインテントが削除されます。しかし、アプリケーションが実行されていなくてもアップロードプロセスを完了したいので、アクティビティからサービスを停止したくありません。
私の問題は、サービスをいつどのように停止するかわからないことです。
onHandleIntent()
の実行中にコマンドが送信されなくなった場合、onHandleIntent()
が終了するとIntentService
は自動的に停止します。したがって、IntentService
を手動で停止することはありません。
OnHandleIntent(Intent ..)でstopself()を呼び出すと、IntentServiceキューで待機しているすべてのインテントが削除されます。
それがあなたがそうしない理由です。
しかし、アプリケーションが実行されていなくてもアップロードプロセスを完了したいので、アクティビティからサービスを停止したくありません。
次に、IntentService
を停止させます。
IntentService
は、処理するIntent
s(ジョブ)がなくなると自動的に停止します。 Intent
(ジョブ)ごとにstopSelf(startId)
を実行します。ここからIntentService
ソースまたはExtending the Service Class
をご覧ください http://developer.Android.com/guide/topics/fundamentals/services.html