リモートバックグラウンドサービスを実装するアプリケーションがあります。このサービスは、スレッド内のファイルをダウンロードするために実装されています(このサービスはダウンロードマネージャーとして機能すると思います)。
ファイルをダウンロードしたいときは、URLをサービスに送信すると、サービスがスレッドを開始し(AsyncTaskを使用していましたが、Android 4.1でのみ機能しました)、実際にファイルをダウンロードします。しかし、遅かれ早かれダウンロードが停止し、表示する通知が更新されなくなったため、それを知ることができました。通知をクリックしてダウンロードをキャンセルすると、保留中のインテントがサービスに送信され、ダウンロードをキャンセルするように指示されますが、サービスが再作成される(onCreateが呼び出される)ため、ダウンロードはキャンセルされません。
編集: onStartCommand()でSTART_STICKYを返すと言うのを忘れました
どのような解決策がありますか?サービスが強制終了されないようにする方法はありますか?
startForeground()も調べていましたが、サービスターゲットが1つのファイルのみをダウンロードすることであれば問題ありませんが、複数のファイルを同時にダウンロードするためのサポートが必要です。
ありがとうございました。