我必须在某些特定时间安排一些长期运行的网络任务(下载文件)(在夜间时间)。现在可以使用作业调度程序完成,但是在Doc中说,它应该用于较短的任务(不到3分钟),另一个选择是将服务与警报管理器一起使用,但不建议使用。因此,在这两者之间选择什么或也有其他方法。
您最好的选择是使用AlarmManager
安排IntentService
在您的特定时间和间隔下运行。
您将需要向WakefulBroadcastReceiver
发射警报,然后开始您的服务,因为听起来您的网络任务将在电话睡觉时在晚上运行。这将确保服务立即运行,只需确保完成任务后释放尾锁!
要释放Wakelock,请在服务结束时进行此操作:
MyWakefulReceiver.completeWakefulIntent(intent);
其中MyWakefulReceiver
是您制作的接收器,它扩展了WakefulBroadcastReceiver
。如果您需要更多帮助,请让我知道。