我正在开发一个
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.清单
<service android:name="com.hopesndreams.hiren.hd.service.NotificationService" android:permission="android.permission.BIND_JOB_SERVICE" >
</service>
最佳答案 @hiren patel ..看看这个例子..它的工作正常.
我认为您需要在杀死或销毁之前安排调度程序.
>作业调度程序有限制
>它不会在线下工作.
>其时间为15分钟,15分钟后自动停止服务,我们必须重新开始或重新安排工作.
谢谢..