有没有办法在同一天和随后的每一天的指定时间 运行 执行一次任务?
Is there a way to run a task once the same day and every consequent day at the specified time?
有没有办法在同一天 运行 一个任务,并在随后的每一天的指定时间执行一次任务?我正在使用一个名为“android-job”的库,因为即使在设备重启后它也会保留计划的作业。我一直在努力让这个库适用于我的用例,但运气不佳。
注意:最终目标是每天在指定时间启动和停止一个后台服务。例如,我想在晚上 8 点停止我的服务,然后在早上 8 点重新开始。
目前,我的代码如下所示:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 0);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
long startMs = TimeUnit.MINUTES.toMillis(60 - minute) + TimeUnit.HOURS.toMillis((24 - hour) % 24);
long endMs = startMs + TimeUnit.MINUTES.toMillis(5);
int jobId = new JobRequest.Builder(TAG)
.setExecutionWindow(startMs, endMs)
.setPersisted(true)
.setUpdateCurrent(updateCurrent)
.build()
.schedule();`
控制台输出:
jobInfo success, request{id=11, tag=job_demo_tag}, start 05:00:00, end 05:05:00, reschedule count 0
您可以为此探索 AlarmManager。它可用于您希望在指定时间执行代码的情况,即使您的应用不是 运行.
https://developer.android.com/reference/android/app/AlarmManager.html
有没有办法在同一天 运行 一个任务,并在随后的每一天的指定时间执行一次任务?我正在使用一个名为“android-job”的库,因为即使在设备重启后它也会保留计划的作业。我一直在努力让这个库适用于我的用例,但运气不佳。
注意:最终目标是每天在指定时间启动和停止一个后台服务。例如,我想在晚上 8 点停止我的服务,然后在早上 8 点重新开始。
目前,我的代码如下所示:
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 0);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
long startMs = TimeUnit.MINUTES.toMillis(60 - minute) + TimeUnit.HOURS.toMillis((24 - hour) % 24);
long endMs = startMs + TimeUnit.MINUTES.toMillis(5);
int jobId = new JobRequest.Builder(TAG)
.setExecutionWindow(startMs, endMs)
.setPersisted(true)
.setUpdateCurrent(updateCurrent)
.build()
.schedule();`
控制台输出:
jobInfo success, request{id=11, tag=job_demo_tag}, start 05:00:00, end 05:05:00, reschedule count 0
您可以为此探索 AlarmManager。它可用于您希望在指定时间执行代码的情况,即使您的应用不是 运行.
https://developer.android.com/reference/android/app/AlarmManager.html