android – Job Scheduler服务在应用程序被杀死时无效

我正在开发一个
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 ..看看这个例子..它的工作正常.

Job Scheduler in Background

我认为您需要在杀死或销毁之前安排调度程序.

>作业调度程序有限制
>它不会在线下工作.
>其时间为15分钟,15分钟后自动停止服务,我们必须重新开始或重新安排工作.

谢谢..

点赞