我必须在某个特定时间安排一些长时间运行的网络任务(下载文件)(例如在夜间安排)。现在可以使用作业调度程序完成,但在文档中它表示它应该用于较短的任务(少于3分钟),另一个选项是使用带有警报管理器的服务但不鼓励使用。那么在这两者之间做出选择还是有其他任何方法。
答案 0 :(得分:1)
您最好的选择是使用AlarmManager
来安排在您的特定时间和间隔运行IntentService
。
您需要触发警报WakefulBroadcastReceiver
然后启动您的服务,因为听起来您的网络任务将在手机睡眠时晚上运行。这将确保服务立即运行,只需确保在任务完成时释放唤醒锁!
要释放唤醒锁,请在服务结束时使用:
MyWakefulReceiver.completeWakefulIntent(intent);
MyWakefulReceiver
是你所做的接收者WakefulBroadcastReceiver
。如果您需要更多帮助,请告诉我。