我正在开发一个

Android应用程序,它需要每小时执行一次后台任务(Job Scheduler或Service).应用程序运行时会执行任务,但只要我从前台终止应用程序,服务就无法运行.还有另一种方法来实现这一目标吗?

1.服务

public class NotificationService extends JobService {

private void PrintLog()

{

Log.d("DGVCL", "PrintLog()");

}

@Override

public boolean onStartJob(JobParameters jobParameters) {

Log.d("DGVCL", "onStartJob()");

PrintLog();

jobFinished(jobParameters, false);

return true;

}

@Override

public boolean onStopJob(JobParameters jobParameters) {

Log.d("DGVCL", "onStopJob()");

return true;

}

}

2.主要活动

JobScheduler jobScheduler = (JobScheduler)getApplicationContext().getSystemService(JOB_SCHEDULER_SERVICE);

ComponentName componentName = new ComponentName(this, NotificationService.class);

JobInfo jobInfo = new JobInfo.Builder(1, componentName)

.setPeriodic(Global.NOTIFICATION_TIME_PERIOD)

.setBackoffCriteria(Global.NOTIFICATION_TIME_PERIOD, JobInfo.BACKOFF_POLICY_LINEAR)

.setPersisted(true).build();

jobScheduler.schedule(jobInfo);

3.清单

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐