您好我已经实施了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没有立即触发这种行为?
答案 0 :(得分:0)
这是正常行为。它在(近)未来的某个地方开始#34;。它在我的应用程序中也是如此。有时候,不一定总是。
此外,您的要求(如NETWORK_TYPE_ANY)可能会在目前没有网络时将其推迟。
来自文档:"通常,如果您没有在工作中指定截止日期,则可以随时运行,具体取决于JobScheduler内部队列的当前状态,但是可能会延迟,直到下次设备连接到电源为止。" https://developer.android.com/reference/android/app/job/JobScheduler.html