Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Android应用程序、服务、套接字和x2B;谷歌地图API-什么是正确的方法?_Java_Android_Socket.io - Fatal编程技术网

Java 使用Android应用程序、服务、套接字和x2B;谷歌地图API-什么是正确的方法?

Java 使用Android应用程序、服务、套接字和x2B;谷歌地图API-什么是正确的方法?,java,android,socket.io,Java,Android,Socket.io,我的android应用程序在(应用程序)打开时需要与服务器通信。 为此,我想使用socketiojava客户端 我是否需要为套接字使用BoundService(它应该在后台运行)?需要能够进行活动和服务沟通。为此,我可以使用广播意图 需要在哪里建立套接字连接?在MainActivity onCreate中还是在service onStartCommand方法中 编辑: 来自我的服务器(套接字)的请求在谷歌地图准备就绪之前发出。。这意味着,我不能添加标记到地图等。什么是最好的解决方案?向服务器发送

我的android应用程序在(应用程序)打开时需要与服务器通信。 为此,我想使用socketiojava客户端

我是否需要为套接字使用BoundService(它应该在后台运行)?需要能够进行活动和服务沟通。为此,我可以使用广播意图

需要在哪里建立套接字连接?在MainActivity onCreate中还是在service onStartCommand方法中

编辑:

来自我的服务器(套接字)的请求在谷歌地图准备就绪之前发出。。这意味着,我不能添加标记到地图等。什么是最好的解决方案?向服务器发送类似“Google maps ready”的消息,然后从服务器发送到android?

我认为您应该在服务中创建套接字,这样您就可以轻松地从任何活动/片段发送消息。只要确保在应用程序进入后台时关闭套接字即可

当套接字未连接时,您可以依赖推送通知。一旦用户返回到您的应用程序,您就可以再次建立套接字,这样您将节省电池

确保使用部分唤醒锁,以防需要执行某些操作 应用程序处于后台时套接字上的操作

编辑:
如果您希望消息仅在映射准备好之后才出现,那么可能在映射渲染之后创建套接字。一种可能的替代方法是将来自服务器的消息存储在队列中,直到消息被处理。

谢谢!不需要推送通知。但有一个关于广播接收机的小问题。。我是否需要为每个活动创建一个接收器(当需要活动和服务之间的通信时)?您可以创建一个BaseActivity,它具有广播接收器逻辑和一个抽象方法(onMessageReceived)。每当您从服务接收到消息时,就会调用此方法。或者,您可以考虑使用EnvestBUS库,并从服务中引发事件。感兴趣的活动/片段可以订阅这些事件。