如何确保RemoteViewsService在Oreo的后台运行?

Roy*_*erg 8 android android-widget android-service android-8.0-oreo

Android 8具有后台执行限制,因此当我们开始定位Oreo时,我们将服务更改为使用JobIntentSerivce以便能够完成工作.

但是,我们有一个小部件,每隔几分钟就会使用实时分数数据进行更新.小部件的服务扩展了旧的RemoteViewsService.即使应用程序在后台,我们如何确保窗口小部件更新?

我已经看过另一个SO问题中的建议,但它们似乎都有一些警告:

  • JobScheduler需要一个JobIntentSerivce我无法看到如何与之结合的RemoteViewsService(或者它可以以某种方式?)
  • PendingIntent.getForegroundService() 在一个糟糕的互联网连接(或者可能是一个慢速设备)上并不完美,并且有时会给出一个ANR,当我们看到时间限制正在接近我们时,理想情况下我们并不真的想要显示通知

我还没有尝试过BroadcastReceiver.goAsync(),但也许那是我最好的一击?