我想知道是否可以使用Firebase jobdispatcher来安排网址命中并获取响应以更新数据库.
我希望它每天晚上运行一次.有谁知道这是否可能?
我找不到这样做的好例子.我已经阅读了android文档和https://github.com/firebase/firebase-jobdispatcher-android#user-content-firebase-jobdispatcher-.
我需要使用Firebase jobdispatcher,因为我的目标是API 16.
提前致谢.
UPDATE
这就是我每天安排一次的工作.
final int periodicity = (int) TimeUnit.HOURS.toSeconds(24);final int toleranceInterval = (int) TimeUnit.HOURS.toSeconds(1);FirebaseJobdispatcher dispatcher = new FirebaseJobdispatcher(new GooglePlayDriver(this));Job job = dispatcher.newJobBuilder() .setService(UpdateTVJobService.class) .setTag(JOB_TAG) .setTrigger(Trigger.executionWindow(periodicity, periodicity + toleranceInterval)) .setlifetime(lifetime.FOREVER) .setRecurring(true) .setReplaceCurrent(true) .build();int result = dispatcher.schedule(job);if (result != FirebaseJobdispatcher.SCHEDulE_RESulT_SUCCESS) { Log.d("JOB_TAG", "ERROR ON SCHEDulE");}
解决方法:
您可以使用Firebase Jobdispatcher安排定期作业.根据您的要求,您需要创建一个扩展JobService的服务,该服务从URL获取响应并更新数据库.然后,您可以使用Firebase Jobdispatcher计划此服务.在executionWindow中,您必须指定作业应在理想情况下运行的最早和最晚时间.
如果你想在每24小时后安排工作,你可以使用执行窗口(60 * 60 * 24,60 * 60 * 24 60).然后,如果你想要它应该每晚运行,那么你必须确保它最初为此你最初可以在安装应用程序时使用AlarmManager在夜间(仅一次)触发,并使用作业调度程序安排定期作业,或者另一种方法是根据现在的差异和您可以安排的所需执行时间使用jobdispatcher的非递归作业将在晚上和该作业服务中运行,您可以使用作业调度程序安排重复作业.
ExecutionWindow指定大致时间.它不能保证它会在给定的窗口运行.如果它错过了窗口,作业将在理想情况下最早时间运行.对于重复作业,一旦作业完成,下一个作业将计算从上次运行时间作业的执行窗口时间.
Job myJob = dispatcher.newJobBuilder() .setTag("my-unique-tag") .setRecurring(true) .setlifetime(lifetime.FOREVER) .setService(MyJobService.class) .setTrigger(Trigger.executionWindow(60*60*24,60*60*24+60)) .setReplaceCurrent(false) .setRetryStrategy(RetryStrategy.DEFAulT_EXPONENTIAL) .setConstraints(Constraint.ON_ANY_NETWORK) .setExtras(myExtrasBundle) .build();dispatcher.mustSchedule(myJob);
总结 以上是内存溢出为你收集整理的Android – Firebase jobdispatcher全部内容,希望文章能够帮你解决Android – Firebase jobdispatcher所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)