AndroidO后台联网
Android O background networking
我在 Android 8 中阅读了有关后台服务限制的内容,从我读到的内容来看,您似乎无法 运行 您的服务长时间处于后台。这似乎是合理的,但因为我使用后台服务来保持与服务器的连接——目前正在汇集新内容、发送位置和响应,我有点困惑。响应还可以,我只能在与应用程序交互时才能响应,但是汇集新内容是有问题的,因为它需要从服务器获取内容,如果有新内容出现,则会向用户显示响应通知。
如果我理解正确,我可以使用 JobScheduler 每隔几秒安排一些作业。我基本上可以安排汇集。对于后台位置,有这些限制,因此只有前台服务是在请求的时间内获取更新的选项。
我将迁移到 websockets,然后关闭池,与服务器的连接将保持不变,应用程序将从服务器获取更新,我计划在后台服务中执行此操作,以便某些东西可以从服务器每次。但是我似乎不能,因为 Android 8. 你会如何解决这个问题?我应该使用前台服务进行定位和服务器连接吗?或者是否有更好的方法在 android 8 上的 android 应用程序中进行后台联网?
谢谢
以下是在 Android 上执行后台工作的一些选项 O:
使用 JobScheduler。您似乎已经很好地掌握了这一点-缺点是它是周期性的,而不是持久的。
使用 GCM/FCM 或类似的推送服务在相关时将数据推送到您的应用,而不是持续保持与服务器的连接。
Use a foreground service。这将允许您在您的应用不在前台的情况下继续执行您的后台工作,但会在状态栏中放置一个通知以通知您的用户您正在做这项工作。
在您 select 这些方法之一之前,您应该花点时间退后一步,查看您需要从您的服务器获取的数据并确定 为什么 您需要持久连接,第一个或第二个选项是否足够。
如果您绝对需要与服务器的持久连接,最后一个选项是您的最佳选择。 O 中的更改背后的想法是仍然允许后台工作,例如您所描述的内容,但要让用户清楚地知道您的应用程序正在这样做。这样,如果他们认为您的数据不如您重要,他们就可以采取行动。
我在 Android 8 中阅读了有关后台服务限制的内容,从我读到的内容来看,您似乎无法 运行 您的服务长时间处于后台。这似乎是合理的,但因为我使用后台服务来保持与服务器的连接——目前正在汇集新内容、发送位置和响应,我有点困惑。响应还可以,我只能在与应用程序交互时才能响应,但是汇集新内容是有问题的,因为它需要从服务器获取内容,如果有新内容出现,则会向用户显示响应通知。
如果我理解正确,我可以使用 JobScheduler 每隔几秒安排一些作业。我基本上可以安排汇集。对于后台位置,有这些限制,因此只有前台服务是在请求的时间内获取更新的选项。
我将迁移到 websockets,然后关闭池,与服务器的连接将保持不变,应用程序将从服务器获取更新,我计划在后台服务中执行此操作,以便某些东西可以从服务器每次。但是我似乎不能,因为 Android 8. 你会如何解决这个问题?我应该使用前台服务进行定位和服务器连接吗?或者是否有更好的方法在 android 8 上的 android 应用程序中进行后台联网?
谢谢
以下是在 Android 上执行后台工作的一些选项 O:
使用 JobScheduler。您似乎已经很好地掌握了这一点-缺点是它是周期性的,而不是持久的。
使用 GCM/FCM 或类似的推送服务在相关时将数据推送到您的应用,而不是持续保持与服务器的连接。
Use a foreground service。这将允许您在您的应用不在前台的情况下继续执行您的后台工作,但会在状态栏中放置一个通知以通知您的用户您正在做这项工作。
在您 select 这些方法之一之前,您应该花点时间退后一步,查看您需要从您的服务器获取的数据并确定 为什么 您需要持久连接,第一个或第二个选项是否足够。
如果您绝对需要与服务器的持久连接,最后一个选项是您的最佳选择。 O 中的更改背后的想法是仍然允许后台工作,例如您所描述的内容,但要让用户清楚地知道您的应用程序正在这样做。这样,如果他们认为您的数据不如您重要,他们就可以采取行动。