【问题标题】:Android JobScheduler is not workedAndroid JobScheduler 不工作
【发布时间】: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 记录中不存在错误或警告。
  • 我编辑了我的问题。

标签: android job-scheduling


【解决方案1】:

JobScheduler 的工作周期至少为 15 分钟 改为.setPeriodic(15 * 60 * 1000)

【讨论】:

    猜你喜欢
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多