关于JobScheduler的一般问题

问题描述 投票:0回答:2

在我的应用程序中,我需要每隔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中,后台服务每小时不能多次接收位置更新。所以这几次可以达到多少?

android android-jobscheduler
2个回答
1
投票
onStopJob

指定此作业应以提供的间隔重复,每个周期不得超过一次。换句话说,此作业必须以指定的间隔重复,以毫秒为单位,9000 = 9秒。

setPeriodic(long intervalMillis)

调用此方法通知JobScheduler该作业已完成其工作。当系统收到此消息时,它会释放为该作业保留的唤醒锁。


0
投票
JobFinished

指定此作业应以提供的间隔重复,每个周期不超过一次此方法的MinimumInterval为15分钟或900000毫秒并且

setPeriodic(long intervalMillis)

当你的工作完成时打电话

(如果您的任务很短,请在onStart方法上写入并返回false而不调用JobFinished方法)

注意:如果在jobFinished中定义作业周期,则始终返回false

© www.soinside.com 2019 - 2024. All rights reserved.