JobScheduler 不工作

JobScheduler Not Working

我的项目中有以下代码,但是当我 运行 它在我的 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();

我的 mainfest 应用程序标签下也有这个

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

要使用 JobScheduler,您需要:

  • 创建一个 JobInfo,正如您所做的那样
  • 通过getSystemService()
  • 获取JobScheduler的实例
  • JobScheduler 上调用 schedule(),将其传递给 JobInfo