gpt4 book ai didi

Android JobInfo builder periodiy daily

转载 作者:行者123 更新时间:2023-11-30 01:09:02 28 4
gpt4 key购买 nike

我正在尝试创建一个循环异步任务来调用带有 JobScheduler 和 JobService 的 Web 服务。但我的想法是尝试每天执行一次此任务,并且始终在同一时间执行。甚至可以让用户更新任务启动日期的小时数。

JobInfo.Builder 是否支持这种可能性?因为我使用的是“setPeriodic”,但我认为这是不可能的。

我是否应该更好地使用 AlarmManager 来实现此功能?

这是现在调用服务的代码:

private void launchCheckShowStatusJob(){
ComponentName serviceComponent = new ComponentName(this, CheckShowsStatusService.class);
JobInfo.Builder builder = new JobInfo.Builder(jobId++, serviceComponent);
builder.setMinimumLatency(0);
builder.setPeriodic(5*1000); //Every 5 minutes, can this be use to set a dayly task?
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); //Require any network
builder.setRequiresCharging(false);

JobScheduler jobScheduler = (JobScheduler) getApplication().getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(builder.build());
}

最佳答案

您可以在作业调度程序唤醒时检查设备时间,然后在 OnStartJob 内部首先获取这样的时间

public override bool OnStartJob (JobParameters args)
{ if (devicetime == (that unique time)){ ... } }

然后你就可以随心所欲了。

但是,android 7.0 不保证 jobscheduler 会在准确的时间工作。所以选择你独特的时间更广泛。

第二个选项是警报管理器,它也适用于您的情况。有有用的解决方案; Using Alarmmanager to start a service at specific time

关于Android JobInfo builder periodiy daily,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38617997/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com