Я работаю над приложением "Новости". И мне нужно было получать последние новости раз в день. Для этого я использовал Jobsheduler, вот код:
ComponentName componentName = new ComponentName(this, JobService.class);
JobInfo jobInfo = new JobInfo.Builder(123, componentName)
.setRequiresCharging(false)
.setPeriodic(24 * 60 * 60 * 1000)
.setPersisted(true)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.build();
JobScheduler jobScheduler = (JobScheduler)getApplicationContext().getSystemService(JOB_SCHEDULER_SERVICE);
int resultCode = jobScheduler.schedule(jobInfo);
if (resultCode == JobScheduler.RESULT_SUCCESS){
Log.d(TAG, "Job Scheduled");
}
else {
Log.d(TAG, "Job Scheduling failed");
}
Но теперь мне нужно проделать эту работу один раз утром после 6:00, когда будет подключение к Интернету. Есть ли способ сделать это с помощью планировщика заданий. Я знаю, что могу сделать это с помощью диспетчера аварийных сигналов, но планировщик заданий намного лучше, чем диспетчер аварийных сигналов, в таких условиях, как наличие соединения или зарядка устройства. Или я могу добиться этого с помощью Workmanager, который при необходимости использует планировщик заданий и AlarmManager. Или есть другой способ сделать это ??? Любые предложения приветствуются.