Android JobScheduler:使用setMinimumLatency和setPeriodic

Android JobScheduler:使用setMinimumLatency和setPeriodic,android,android-jobscheduler,Android,Android Jobscheduler,我只是在玩作业调度程序,有几件小事 其中之一是,尽管可以通过使用setMinimumLatency()延迟作业,但不能将其与setPeriodic()结合使用,因为会引发异常 我真的不明白为什么会这样。。。延迟定期作业的开始似乎是合理的,正如延迟一次性作业的开始也是合理的 如果您不能,那么使用JobScheduler,在JobService类的实现中,调用jobFinished(参数,重新调度)来调度将来启动的定期作业的最佳方法是什么在离开前重新安排onStartJob方法 另外,也不要忘记在o

我只是在玩
作业调度程序
,有几件小事

其中之一是,尽管可以通过使用
setMinimumLatency()
延迟作业,但不能将其与
setPeriodic()
结合使用,因为会引发异常

我真的不明白为什么会这样。。。延迟定期作业的开始似乎是合理的,正如延迟一次性作业的开始也是合理的


如果您不能,那么使用
JobScheduler
,在
JobService
类的实现中,调用
jobFinished(参数,重新调度)来调度将来启动的定期作业的最佳方法是什么
在离开前重新安排
onStartJob
方法

另外,也不要忘记在
onStopJob
方法中
返回true
,以便重新安排


,布尔值)

JobService
类的实现中,调用
jobFinished(params,reschedule)
在离开前重新安排
onStartJob
方法

另外,也不要忘记在
onStopJob
方法中
返回true
,以便重新安排


,布尔值)

“为什么不合理…”--“为什么开发人员X做了Y件事”的问题对于堆栈溢出来说不是很好,因为只有开发人员X才能权威地回答这个问题。“最好的方法是什么……”——即兴,要么立即安排工作,让您的工作服务跳过尚未到时间的工作,要么使用
AlarmManager
在您希望开始工作时获得控制。我已经用
AlarmManager
完成了所有工作,但我认为
JobScheduler
是推荐的前进方向。我考虑使用
JobScheduler
的主要原因是,在我的
AppWidgetProvider
中监听
CONNECTIVITY\u CHANGE
在Android N中已不可能了。因此,我将从一个带有连接监听螺栓的
AlarmManager
解决方案转到
JobScheduler
(连接监听)解决方案…一个
AlarmManager
插接。嘿,ho.P.S.“为什么它不合理”的问题是修辞性的…我把它重新表述为一句话。“我认为JobScheduler是推荐的前进方向”--是的,它是针对某一类工作的。它不会解决所有可能的工作类别。例如,你不会将它用于闹钟或日历提醒。你计划的用例恰好与任何单个API不一致。是的,我正在使用
AlarmManager
来安排定期小部件刷新(比stock
AppWidgetProvider
方法允许的灵活性更大,包括在缺少刷新时恢复连接后进行刷新)。这一切都运行得很好……但现在它们取消了
connectivity\u CHANGE
:-(也许我需要保持我的
AlarmManager
框架的完整性,并在每次刷新警报时安排一个
JobService
(以监听连接),而不是像目前那样直接启动
服务。“为什么不合理…”--“为什么开发人员X做了Y件事?”对于堆栈溢出,问题不是很好,因为只有开发人员X可以权威地回答这个问题。“什么是最好的方法…”--即兴,要么立即安排作业,让您的作业服务跳过尚未到时间的作业,要么使用
AlarmManager
在您希望作业开始时获得控制权。我已经使用
AlarmManager
一切正常,但我认为建议使用
JobScheduler
展望未来。我考虑改用
JobScheduler
的主要原因是,在我的
AppWidgetProvider
中监听
CONNECTIVITY\u变化在安卓N中不再可能。因此,我将从一个
AlarmManager
解决方案(带有连接监听螺栓)改用
JobScheduler
(连接监听)解决方案…一个
AlarmManager
插接。嘿,ho.P.S.“为什么它不合理”的问题是修辞性的…我把它重新表述为一句话。“我认为JobScheduler是推荐的前进方向”--是的,它是针对某一类工作的。它不会解决所有可能的工作类别。例如,你不会将它用于闹钟或日历提醒。你计划的用例恰好与任何单个API不一致。是的,我正在使用
AlarmManager
来安排定期小部件刷新(比stock
AppWidgetProvider
方法允许的灵活性更大,包括在缺少刷新时恢复连接后进行刷新)。这一切都运行得很好……但现在它们取消了
connectivity\u CHANGE
:-(也许我需要保持我的
AlarmManager
框架的完整性,并在每次刷新警报时安排一个
JobService
(以监听连接),而不是像目前那样直接启动
服务。