我正在开发一个

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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐