2

特定の時間(夜間など)に長時間実行しているネットワークタスク(ファイルのダウンロード)をスケジュールする必要があります。今ではジョブスケジューラを使用して行うことができますが、ドキュメントでは短いタスク(3分以下)に使用する必要があり、別のオプションはアラームマネージャでサービスを使用していますが、推奨されません。だから、これら2つの間で何を選ぶか、あるいは他の方法もあります。時間のかかるネットワークタスクをAndroidでスケジュールするにはどうすればよいですか?

+2

AlarmManagerは私が知っている唯一の文書化された方法です。それについて落胆しているのは何ですか?あなたはどこを見つけましたか? –

答えて

1

AlarmManagerを使用して、IntentServiceを特定の時間と間隔で実行するようにスケジュールすることをお勧めします。

あなたは、電話が眠っているときにネットワークタスクが夜間に実行されるように聞こえるので、WakefulBroadcastReceiverを起動してサービスを開始したいと思うでしょう。これにより、サービスがすぐに実行されるようになります。タスクが完了した時点でウェイクロックが解除されていることを確認してください。

wakelockを解放するために、あなたのサービスの終了時にこれを持っている:

MyWakefulReceiver
MyWakefulReceiver.completeWakefulIntent(intent); 

WakefulBroadcastReceiverを拡張し、あなたが作った受信機です。これ以上の設定が必要な場合は、私に知らせてください。

関連する問題