バックグラウンドでサービスを使用してアップロード/ダウンロード操作を行うアプリがあります。ユーザーの選択 (ファイルの量とサイズ) によっては、これらの操作に時間がかかる場合があります。
私のデバイス (nexus s) とテスト エミュレーターでは、すべてが計画どおりに動作しますが、ユーザーから、ビッグ データのアップロード/ダウンロードを選択すると操作が停止するという報告を受けています。
操作は、バックグラウンド サービスで実行されるスレッドを使用して行われます。私の推測では、メモリが少ないデバイスでは、OS がスレッドやサービスを強制終了することがあります。
サービスの onStartCommand() 関数では、操作を実行するスレッドを生成し (処理するデータはインテント内に含まれます)、START_NOT_STICKY を返します。startService(i) を使用しているアクティビティでは、バインドは行われません。
どうすればこれを防ぐことができますか? システムがサービスまたはスレッドを強制終了しないようにするにはどうすればよいですか?