【发布时间】:2017-10-11 12:43:49
【问题描述】:
我在我的 Android 应用中实现了作业调度程序。为此,我应用了框架 JobScheduler。
JobScheduler jobScheduler = (JobScheduler)getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName jobService =
new ComponentName(getBaseContext(), ServiceAppControl.class);
JobInfo jobInfo =
new JobInfo.Builder(MYJOBID, jobService)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
.setPeriodic(100)
.setPersisted(true)
.build();
jobScheduler.schedule(jobInfo);
manifest.xml
<service
android:name=".services.ServiceAppControl"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"/>
服务应用控制
public class ServiceAppControl extends JobService {
@Override
public boolean onStartJob(JobParameters params) {
Log.d("Control", "onStartJob");
return false;
}
@Override
public boolean onStopJob(JobParameters params) {
return false;
}
}
我做对了吗?记录仅在大约 10 分钟内执行一次。
---编辑---
我在 logcat 中找到了这样的条目。这可能意味着什么?
10-12 13:40:48.324 24072-24072/ru.test.testjobscheduler W/JobInfo:1001 的指定间隔为 +1s0ms。钳制到 +15m0s0ms 10-12 13:40:48.324 24072-24072/ru.test.testjobscheduler W/JobInfo:1001 的指定弹性为 +1s0ms。钳制到 +5m0s0ms
【问题讨论】:
-
您确定有正确的网络连接可供作业运行吗?
setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)和文档:“请记住,调用此函数将网络定义为对您的工作的严格要求。如果请求的网络不可用,您的工作将永远不会运行。”。尝试删除此设置并检查作业是否按预期运行。 -
是的,wi-fi 用作连接。我试过没有这行代码,但在这种情况下它也不起作用。
-
并且没有相关的 logcat 错误/警告?
-
否,在 logcat 记录中不存在错误或警告。
-
我编辑了我的问题。