在我的应用程序中,我需要每隔15分钟通过qazxsw poi更新用户位置,但我对某些参数感到困惑。目前我有
Geofire
究竟是什么表明jobScheduler再次开始工作 JobScheduler jobScheduler = (JobScheduler) getActivity().getSystemService(Context.JOB_SCHEDULER_SERVICE);
JobInfo.Builder builder = new JobInfo.Builder(AppConstants.USER_DATA_UPDATE_JOB_ID, new ComponentName(getActivity().getPackageName(), UserDataUpdateScheduler.class.getName()));
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
builder.setPeriodic(900000);
builder.setPersisted(true);
jobScheduler.schedule(builder.build());
或builder.setPeriodic(900000);
?而且也无法理解jobFinished(params, true);
和onStartJob
返回值的含义。
另外一个问题,在Android O中,后台服务每小时不能多次接收位置更新。所以这几次可以达到多少?
onStopJob
指定此作业应以提供的间隔重复,每个周期不得超过一次。换句话说,此作业必须以指定的间隔重复,以毫秒为单位,9000 = 9秒。
setPeriodic(long intervalMillis)
调用此方法通知JobScheduler该作业已完成其工作。当系统收到此消息时,它会释放为该作业保留的唤醒锁。
JobFinished
指定此作业应以提供的间隔重复,每个周期不超过一次此方法的MinimumInterval为15分钟或900000毫秒并且
setPeriodic(long intervalMillis)
当你的工作完成时打电话
(如果您的任务很短,请在onStart方法上写入并返回false而不调用JobFinished方法)
注意:如果在jobFinished中定义作业周期,则始终返回false