在奥利奥安排任务和提醒的正确方法是什么?

时间:2018-04-13 10:18:46

标签: android notifications alarmmanager android-8.0-oreo

背景

自从Android O问世以来,我想在安排后台同步任务和通知时应该使用哪些类和方法时遇到问题,更具体地说,我想做这两个单独的事情:

  • 后台同步任务,用于从服务器下载数据,并通知用户重要信息(刚刚从服务器获取)。这些同步应该在一天中几乎精确的时间发生(例如21:30±10分钟)。
  • 通知用户即将举行的活动,例如考试前一周。

由于Android O对AlarmManager设置了一些限制,因此我无法设置在一天中的特定时间运行的后台服务,除非我使用getForegroundService()作为docs }说,应该只用于用户可以注意到的服务。

我尝试/考虑的内容

我一直在使用每隔几个小时定期运行的JobService,但我希望它能在一天中更具体的时间运行。

我已经查看了CalendarProvider,并且还考虑了推送通知服务,但在我看来,对于像这样的简单任务来说,这样做太过分了。

问题

我的最后一个问题是我可以使用哪些方法,或者我应该使用哪些方法来实现上述功能?