Android JobScheduler JobService无法正常工作

时间:2017-08-31 11:13:59

标签: android service jobs intentservice job-scheduling

您好我已经实施了Android JobScheduler API,直到最近一直运行良好,但是从2/3天起,似乎在计划的作业中出现了不一致的行为。

这是jobinfo builder config:

jobInfo = new JobInfo.Builder(118, new ComponentName(this, LocationJob.class)) .setBackoffCriteria(30000, JobInfo.BACKOFF_POLICY_EXPONENTIAL) .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) .setExtras(persistableBundle).build();

jobScheduler.schedule(jobInfo);

基本工作是当我触发它时,它会立即启动Job Service类,但它现在不能立即启动。

我的JobService课程:

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class LocationJob extends JobService {

    private static final String LOG_TAG = LocationJob.class.getSimpleName();

@Override
public boolean onStartJob(final JobParameters params) {

    try {
        /* doing some server work in another thread. */
    } catch (Exception e) {
        Log.v(LOG_TAG, e.toString() + " " + e.getMessage() + " " + e
                .getCause());
    }

    return true;
}

@Override
public boolean onStopJob(JobParameters params) {
    return false;
}
}

我的JobService没有立即触发这种行为?

1 个答案:

答案 0 :(得分:0)

这是正常行为。它在(近)未来的某个地方开始#34;。它在我的应用程序中也是如此。有时候,不一定总是。

此外,您的要求(如NETWORK_TYPE_ANY)可能会在目前没有网络时将其推迟。

来自文档:"通常,如果您没有在工作中指定截止日期,则可以随时运行,具体取决于JobScheduler内部队列的当前状态,但是可能会延迟,直到下次设备连接到电源为止。" https://developer.android.com/reference/android/app/job/JobScheduler.html