gpt4 book ai didi

java - 在 Android 中持续运行 Socket.io 服务

转载 作者:行者123 更新时间:2023-12-01 10:41:13 26 4
gpt4 key购买 nike

我正在开发一个聊天客户端,使用 Socket.io 作为与服务器通信的方式。因此,使用 GCM 并不完全是一种选择。

我希望能够随时接收聊天内容(即使应用程序已关闭);本质上套接字需要始终监听。据我了解,可以在手机启动并保持运行时启动服务。然而,这在移动设备上似乎是一个相当糟糕的主意,会耗尽电池等。

经过研究,GCM 似乎是此类问题最常见的实现。不幸的是,我目前无法替换 Socket.io。我想知道如何实现这个聊天设计 - 在后台监听套接字。

最佳答案

当您的应用程序启动时,您应该运行一项服务(例如 ListenerService),并且在该服务内您必须启动一个线程(例如 ListenerThread)。并保持该线程和服务处于 Activity 状态,直到您的应用程序处于 onResume()/onPause() 状态。通过该线程将您的客户端套接字连接到服务器。并接收 ListenerThread 上的所有更新。如果您想向服务器发送一些数据包,请在另一个线程/处理程序(例如 tempThread)上发送,并在发送请求后关闭该线程。
当您的应用程序关闭/退出时,停止该服务(例如 ListenerService)。在该服务中,您必须 hibernate ListenerThread。不要尝试停止线程有关线程的更多信息,您可以关注 this链接和 this关联。 Android 从 API 级别 1 开始已弃用 Thread.stop(),请参阅 document 。使用 START_STICKY 启动服务(ListenerService)。作为引用,请参阅 android documention服务内容

关于java - 在 Android 中持续运行 Socket.io 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com