Android JobScheduler调用setPeriodic无效果问题求助
JobScheduler设置5秒周期性任务后停止执行数据检查的问题
我开发了一款基于本地SqliteDatabase的任务创建与提醒应用,核心逻辑是通过JobScheduler服务定时检查设备当前时间和数据库中存储的任务,当时间匹配时推送通知提醒用户。
我原本期望这个服务能在后台每5秒执行一次检查,于是在构建JobInfo时设置了builder.setPeriodic(5000);,同时为了让任务在设备重启后依然保留,加上了builder.setPersisted(true);。但设置完成后,服务完全停止了数据检查工作,根本没有按照预期的频率执行。
以下是我的MainActivity相关代码片段:
public class MainActivity extends AppCompatActivity { ImageButton... // 省略其他无关代码 // JobScheduler初始化相关代码 private void setupJobScheduler() { JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE); ComponentName componentName = new ComponentName(this, MyJobService.class); JobInfo.Builder builder = new JobInfo.Builder(1, componentName); builder.setPeriodic(5000); builder.setPersisted(true); // 其他可能的配置项 int resultCode = jobScheduler.schedule(builder.build()); if (resultCode == JobScheduler.RESULT_SUCCESS) { Log.d("JobScheduler", "任务调度成功"); } else { Log.d("JobScheduler", "任务调度失败"); } } }
我已经检查过JobService的实现逻辑,也确认数据库操作没有问题,但就是无法让服务按5秒周期执行。有没有人遇到过类似的问题?或者能帮我分析下哪里出错了?
内容的提问来源于stack exchange,提问作者Hadis
相关产品推荐
相关产品推荐

