JobScheduler不工作

时间:2018-01-07 22:12:11

标签: android android-jobscheduler

我的项目中有以下代码但是当我在我的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;
    }
}

}

我在我的mainactivity 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" />

1 个答案:

答案 0 :(得分:0)

要使用JobScheduler,您需要:

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