在Android中实现Socket.io的最佳方法
我打算通过此库在android中实现Socket.io,用于基于聊天的应用程序。据我了解,该图书馆似乎还不错。我想知道如何始终保持整个应用程序中的
套接字连接吗?在这里,我列出了实现的方法,其中我需要最好和稳定的方法。
类扩展
这样,我们就可以在
(或应用程序的生命周期)中维护套接字连接,并且只要活动需要套接字实例,我们就可以轻松获得套接字连接。但这也是主要问题。它可能会阻塞主线程。
通过这种方式,我们可以 服务与活动 ,并且我们可以简单地使用它。在单独的线程中执行操作是实现IO
/网络调用的方法。但是,跨进程传输比在同一进程中直接访问更昂贵。
在Singleton中保持连接也很有意义。但是我们不知道实例何时被进程杀死,因为它在活动生命周期中不起作用。
如果我有道理,请帮助我。如果没有注释掉。
回答:
我给出了更适合我的答案。
回答:
回答:
根据Ofek Ron的说法,Service
与相比BroadcaseReceiver
是
主意BoundService
。因为保持沟通很繁琐。而且,我还建议pub/sub
使用广播方式,例如Otto
或EventBus
(我本人建议由Square
提供的 ,这是一种干净而出色的api)。
1.简洁的API
2.您可以订阅和发布/任何Activity
,Fragment
,Service
类。
3. 。(您必须在代码中尽量减少耦合)。
还有一点是 在
onStartCommand()
被破坏后用于启动服务。请参阅此参考。
回答:
最佳做法是在MainApplication
扩展中启动服务Application
。因为存在内存限制或用户从堆栈中强制关闭应用程序时,该应用程序将被终止。因此onStartCommand()
不会像在Activity中实现那样频繁调用。
回答:
您只需Application.LifeCycleCallbacks
在MainApplication
类中实现即可实现在线状态,该类具有活动的大部分生命周期回调,并将在回调中得到通知。这样,您可以Online
简单地实现状态,而无需任何样板代码。(如果有人需要帮助,请告诉我)。
回答:
最佳做法是实施by,IntentService
因为它在单独的线程中运行。我保证它将提供最佳性能,因为它是由android本身处理的,而不像我们创建的线程一样。
以上是 在Android中实现Socket.io的最佳方法 的全部内容, 来源链接: utcz.com/qa/432472.html