Вы можете использовать JobScheduler
в API фреймворка Android для планирования задач или работы в фоновом режиме.Вы также можете указать тип сети или период, в который вы хотите запустить задание, или несколько других параметров.Создайте класс, расширяющий класс JobService
, и переопределите методы onStartJob и onStopJob.
public class myJob extends JobService {
public boolean onStartJob(JobParameters jobParameters) {
}
public boolean onStopJob(JobParameters jobParameters) {
}
}
В поле OnStartJob
введите код, который вы хотите запустить в фоновом режиме.Добавьте это к JobInfo
, который используется для настройки того, как должна работать служба заданий.
JobInfo.Builder builder = new JobInfo.Builder(jobID, new ComponentName(context, Myjob.service));
В JobInfo.Builder` вы можете включить критерии планирования.Например:
builder.setPeriodic(10000);
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
Создайте экземпляр Jobscheduler
и передайте данные JobInfo
сверху.Это вызовет класс JobService
, основанный на указанном параметре планирования.
JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(builder.build());
Вот дополнительная информация о jobscheduler: https://developer.android.com/topic/performance/scheduling