我的项目中有以下代码但是当我在我的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" />
答案 0 :(得分:0)
要使用JobScheduler
,您需要:
JobInfo
JobScheduler
getSystemService()
的实例
schedule()
上的JobScheduler
,并将其传递给JobInfo