小编hir*_*tel的帖子

应用程序被杀死后,Job Scheduler服务不起作用

我正在开发一个需要每小时执行一次后台任务的Android应用(作业调度程序或服务)。当应用程序运行时,任务会执行,但是一旦我从前台杀死该应用程序,服务就无法工作。还有另一种方法可以做到这一点吗?

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

3.清单

<service android:name="com.hopesndreams.hiren.hd.service.NotificationService" android:permission="android.permission.BIND_JOB_SERVICE" >
    </service> 
Run Code Online (Sandbox Code Playgroud)

android android-service

5
推荐指数
1
解决办法
881
查看次数

标签 统计

android ×1

android-service ×1