1

我正在阅读关于Android 8中的后台服务限制,并且从我读到的内容看来,您似乎无法在后台长时间运行您的服务。这似乎是合理的,但因为我使用后台服务来保持连接到服务器 - 目前汇集新的东西,发送位置和响应我有点困惑。答复是确定的,我只能在与应用程序交互时做出响应,但合并新东西是有问题的,因为它需要从服务器获取内容,并且如果有新内容出现,用户将收到通知以响应该内容。Android O后台网络

如果我理解正确的话,我可以使用的jobscheduler安排一些工作每隔几秒钟。我基本上可以安排合并。对于后台位置,还有这些限制,所以只有前台服务才能在请求的时间内获得更新。

我将迁移到websockets,然后关闭池,到服务器的连接将是持久的,应用程序将从服务器获取更新,我打算在后台服务中这样做,以便从服务器接收东西每次。不过,从Android 8开始我似乎无法解决这个问题。我应该使用前台服务进行位置和服务器连接吗?或者有没有更好的方法来在Android 8上的Android应用程序中做后台网络?

感谢

回答

0

下面是Android上执行Ø后台工作的几个选项:

  • 使用的jobscheduler。您似乎已经很好地掌握了这一点 - 缺点是它是周期性的,并不是持久的。

  • 使用GCM/FCM或类似的推送服务将数据推到你的应用程序时,它是相关的,而不是不断地抱着你的服务器的连接。

  • Use a foreground service。这将允许您继续执行后台工作,而无需将应用程序置于前台,但会在状态栏中发出通知,通知用户您正在执行此项工作。

您选择这些方法之一之前,您应该花点时间退后一步,看着你从你的服务器需要的数据,并确定为什么你需要一个持久连接,以及是否在第一或第二选项可能就足够了。

如果你绝对需要你的服务器的持久连接,最后的选择是最好的选择。 O中的变化背后的想法是仍然允许后台工作,比如你正在描述的内容,但是让用户明白你的应用程序正在这么做。这样,如果他们不认为你的数据和你一样重要,他们可以采取行动。