要从一开始就明确说明,这里是app所需的流程:
选择日期/小时/分钟的精确日期
- >创建新的rol ax, 8
并使用Job
- >进行排程FirebaseJobDispatcher
恰好在正确的日期触发,并定期运行(比如周期为1-2秒),该代码将定义job
是否需要再次运行。如果它不需要再次运行,请明确结束,否则重新运行它。此外,job
应该具有“持续时间”(通常为60秒),无论job
中发生什么,它都会结束。
到目前为止,我对三件事感到困惑:
job
job
还是FirebaseJobDispatcher#setRecurring
? jobFinished(job, true);
设置为setRecurring(boolean)
,false
,作业仍会再次运行也许我应该使用jobFinished(job, false);
代替?但似乎新的方式是AlarmManager
,所以我不知道。
这是一些代码
服务:
FirebaseJobDispatche
活动
@Override
public boolean onStartJob(final JobParameters job) {
new Thread(new Runnable() {
@Override
public void run() {
simulateBackgroundTask(job);
}
}).start();
return true;
}
private void simulateBackgroundTask(JobParameters job) {
try {
Log.d(TAG, "completeJob: " + "jobStarted --------------------");
//request server or db
Thread.sleep(2000);
Log.d(TAG, "completeJob: " + "jobFinished --------------------");
//shoudRunAgain is from the result of the request
if(shouldRunAgain)
jobFinished(job, true);
else
jobFinished(job, false);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Override
public boolean onStopJob(JobParameters job) {
return false;
}
欢迎任何建议或解决方案,谢谢