Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Firebase作业调度器每周计划一次任务_Android_Alarmmanager_Android Jobscheduler_Firebase Job Dispatcher - Fatal编程技术网

Android 使用Firebase作业调度器每周计划一次任务

Android 使用Firebase作业调度器每周计划一次任务,android,alarmmanager,android-jobscheduler,firebase-job-dispatcher,Android,Alarmmanager,Android Jobscheduler,Firebase Job Dispatcher,已尝试使用job dispatcher按小时安排重复任务。已经为该问题编写了代码段,但不确定这是否是正确的实现 该代码段用于将任务安排在每周周一的11小时 对此或其他可能的解决方案进行任何更正都将大有帮助 Calendar c1 = Calendar.getInstance(); c1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); c1.set(Calendar.HOUR_OF_DAY, 11); c1.set(Calen

已尝试使用job dispatcher按小时安排重复任务。已经为该问题编写了代码段,但不确定这是否是正确的实现

该代码段用于将任务安排在每周周一的11小时

对此或其他可能的解决方案进行任何更正都将大有帮助

    Calendar c1 = Calendar.getInstance();
    c1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    c1.set(Calendar.HOUR_OF_DAY, 11);
    c1.set(Calendar.MINUTE, 0);
    c1.set(Calendar.SECOND, 0);
    c1.set(Calendar.MILLISECOND, 0);

    FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(Splash_onboarding.this));

    Job myJob = dispatcher.newJobBuilder()
            .setService(ScheduledNotificationService.class)
            .setTag(dispatcherTag)
            .setRecurring(true)
            .setLifetime(Lifetime.FOREVER)
            .setTrigger(Trigger.executionWindow(Math.round(c1.getTime().getTime() / 1000), (Math.round(c1.getTime().getTime() / 1000)) + 60))
            .setReplaceCurrent(true)
            .setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
            .build();

    dispatcher.mustSchedule(myJob);

我认为您没有正确地实现Firebase JobDispatcher

Trigger.executionWindow()
在本例中,您在调度作业后,在作业自身执行的时间之后写入。有关更多信息,请参阅:


您可以通过使用executionWindow get time of next monday-System.currentTimeMillis计划第一个非周期性作业,然后在JobService中启动executionWindow为7*24*60*60的周期性作业来解决问题。

您建议如何获得下周一的时间@AbhijeetYou可以通过此解决方案获得下周一的时间: