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