Firebase Job Dispatcher-如果设备长时间处于深度睡眠状态,则不会触发作业

时间:2018-11-10 06:27:16

标签: java android firebase-job-dispatcher doze

作业应在特定的时间/日期和时间执行,我的代码要安排:

 date.set(Calendar.HOUR, hour);
 date.add(Calendar.DATE, notificationOffset * -1);

 int offset = (int) ((date.getTimeInMillis() - now.getTimeInMillis()) / 1000);

 if (offset < 0) return;
 FirebaseJobDispatcher dispatcher = new 
 FirebaseJobDispatcher(new GooglePlayDriver(ctx));
 dispatcher.cancelAll();

 dispatcher.mustSchedule(dispatcher.newJobBuilder()
         .setService(MyService.class)
         .setTag(tag)
         .setLifetime(Lifetime.FOREVER)
         .setExtras(bundle)
         .setTrigger(Trigger.executionWindow(offset, offset + 1))
         .build());

date表示事件日期,应在之前的特定时间和几天(notificationOffset)之前触发工作。

如果执行时间在不久的将来(如5分钟左右),它将起作用。但是,如果我将作业设置为在12小时后或2周后触发,并且设备处于深度睡眠状态,则该作业将完全不会执行,并且不会显示通知。

我做错什么了吗,我是否忽略了某些内容?如何确保将执行我的工作(确切的时间不是优先考虑的时间,可能是+-30分钟)。但无论如何,必须执行

0 个答案:

没有答案