运行 即使应用程序关闭也能工作(Android 奥利奥)

Running a job even if app is closed (Android Oreo)

你好,

我已将我的应用程序升级到 Android 8.0 及更高版本。但是现在我的后台推送通知不起作用。

当我使用带计时器的服务时,我的应用程序运行良好。所以我的俯卧撑通知数据库每 4 分钟重新加载一次。

现在 Android 8.0 似乎一切都坏了。有一个例外,当我 运行 一个应用程序并且它被强制关闭时。

所以,现在我尝试了这个库:https://evernote.github.io/android-job/。我创建了一份定期工作。但是当我关闭应用程序时,作业就消失了。

我的问题是:

那是因为

Android 8.0 (API level 26) imposes limitations on what apps can do while running in the background.

在这种情况下:

When an app goes into the background, it has a window of several minutes in which it is still allowed to create and use services. At the end of that window, the app is considered to be idle. At this time, the system stops the app's background services, just as if the app had called the services' Service.stopSelf() methods.

使用JobScheduler

在这种情况下,文档建议您的应用可以将后台服务替换为JobScheduler 作业