我的Android应用程序需要在服务器(应用程序)打开时与服务器通信。 为此,我想使用socketIO Java客户端。
我是否需要将BoundService用于套接字(它应该在后台运行)?活动和服务沟通需要成为可能。为此,我可以使用广播意图。
需要建立套接字连接的地方?在MainActivity onCreate或服务onStartCommand方法?
修改
来自我的服务器(套接字)的请求在谷歌地图准备好之前出现..这意味着,我无法添加标记到地图等。什么是最佳解决方案?向服务器发送像#34; Google map ready&#34 ;,然后从服务器发送到android?
答案 0 :(得分:3)
我认为您应该在服务中创建套接字,这样您就可以轻松地从任何活动/片段发送消息。只需确保在应用程序转到后台时关闭套接字。
未连接套接字时,您可以依赖推送通知。一旦用户回到您的应用程序,您可以再次建立插座,这样您将节省电池。
确保使用部分唤醒锁,以备不时之需 应用程序在后台时对套接字的操作。
编辑: 如果您希望消息仅在映射准备好后才出现,那么可能在渲染映射后创建套接字。可能的替代方法是将来自服务器的消息存储在队列中直到它被处理。