作业调度程序不起作用



我的项目中有以下代码,但是当我在我的Android模拟器上运行它时,它不会打印任何日志,因为它应该每15分钟打印一次。

public class JobSchedulerService extends JobService {
JobParameters params;
DoItTask doIt;
@Override
public boolean onStartJob(JobParameters params) {
    this.params = params;
    Log.d("TestService", "Work to be called from here");
    doIt = new DoItTask();
    doIt.execute();
    return false;
}
@Override
public boolean onStopJob(JobParameters params) {
    Log.d("TestService", "System calling to stop the job here");
    if (doIt != null)
        doIt.cancel(true);
    return false;
}
private class DoItTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPostExecute(Void aVoid) {
        Log.d("DoItTask", "Clean up the task here and call jobFinished...");
        jobFinished(params, false);
        super.onPostExecute(aVoid);
    }
    @Override
    protected Void doInBackground(Void... params) {
        Log.d("DoItTask", "Working here...");
        return null;
    }
}
}

我在我的主活动 java 中称之为

ComponentName componentName = new ComponentName(getApplicationContext(), JobSchedulerService.class);
    JobInfo jobInfo = new JobInfo.Builder(1, componentName).setPeriodic(900002).build();

我在应用程序标签下的维护节中也有这个

<service android:name=".JobSchedulerService"
        android:permission="android.permission.BIND_JOB_SERVICE" />

要使用 JobScheduler ,您需要:

  • 创建一个JobInfo,就像你正在做的那样
  • 通过getSystemService()获取JobScheduler实例
  • JobScheduler上呼叫schedule(),将其传递JobInfo

最新更新