Android 将后台服务迁移到 jobscheduler

Android migrate background service to jobscheduler

我们有一个项目使用后台服务从服务器检索实时事件。我们使用 s websocket 连接来检索数据。但现在在 Android Oreo 或更高版本中,os 开始显示电池警告。

我担心的是,如果我们迁移到 jobscheduler,它会在一段时间后停止。我们想在事件发生时显示通知

我尝试了作业调度程序,它提供了循环调用。但我们的连接是实时的,所以如果 jobscheduler 停止,我们将无法获取数据。 那么其他应用程序如何处理这个问题(例如 WhatsApp)

保持连接和检索数据的最佳方法是什么?

提前致谢

my concern is that if we migrate to jobscheduler does it stop after sometime.

是的。在打瞌睡模式期间,所有计划的作业都被推迟,直到 OS 提供维护 window。

what is the best way to keep our connection live and retrieve data ?

您不应与您的服务器和永久运行 后台服务保持持久连接。从 Android O 开始,您将无法 运行 后台服务。 OS 将终止所有服务,任何在后台启动服务的尝试都将导致 IllegalStateException

您的要求似乎需要使用FCM。基本思想是,不是不断地向服务器请求数据,而是让服务器通知应用程序数据可用性。更多细节和实现步骤,参考official document.