【发布时间】:2021-03-26 15:44:16
【问题描述】:
在本地环境中,我有一些 Android 设备与前台服务中的 Web 套接字连接。 此套接字连接仅侦听消息并将它们推送到推送通知。 有时您可能数小时甚至数天都没有收到消息,因此这需要非常稳定。
当屏幕处于锁定模式时,推送通知工作,前几分钟连接正常。如果在 10-15 分钟后推送消息,则不会显示通知消息。 一旦有另一条消息出现,前一条消息就会突然被拾取并显示给。 60 分钟或更长时间后,将不会显示任何消息。连接似乎不再完整,服务器和应用程序日志也没有显示连接丢失。
我已经为此工作了超过 4 天,但令我沮丧的是,这并没有奏效。 我发现了很多与这个主题相关的主题,应用程序的优化关闭,每分钟发送一个 ping (StayAlive) 到服务器但都无济于事。
是否有其他选项可以通过前台服务与服务器建立稳定的连接?
请告诉我。
提前谢谢你。
【问题讨论】:
-
除非您的设备不断插入电源,否则打盹模式和/或应用程序待机将限制您的网络连接。这与 websockets 与其他任何东西无关。
-
@CommonsWare 所以理论上不可能在 android 中创建一个供内部使用的应用程序,该应用程序连接到一个网络服务器,该服务器在后台连续检查消息。否则我必须创建自己的 ROM?
-
这在很大程度上取决于您的设备型号和用户行为。设置中提供了“电池白名单”选项,可以尝试告诉 Android 让您的应用不理会。它们的工作情况取决于设备型号——更多信息请参见dontkillmyapp.com。并且任何用户都不需要采取这些步骤将您的应用列入白名单。
标签: android websocket foreground-service