如何启动和保持跨多个活动的套接字连接?

How to start and keep sockets connections accross multiple activities?

我找不到实现此方法的方法:

我有一个 activity A,我将从那里开始 2 个独立的套接字连接。 之后,我将移动到 activity B,我将从那里返回第四个活动 C 和 D。所有 3 个活动将通过套接字交换消息。

根据我的理解,现在我需要为每个套接字创建一个服务,但是我该如何保持两个套接字都打开,而不是每次切换到另一个套接字时都创建一个新连接 activity?

另外,我如何将服务 运行 保留为 "accept loop",提示用户当前 activity 所在的操作?

谢谢

你说得对,你应该使用 Service。一个好的经验法则是,您应该将服务用于逻辑上不受单个 activity 生命周期约束的任何后台处理。 (并使用 AsyncTask 进行后台处理, 在逻辑上受单个 activity 的生命周期约束。)

但您不需要为每个套接字创建一个服务。您应该创建一项服务来执行您需要对套接字执行的任何操作。您的 Activity 可以通过多种方式与服务交互并传递消息或获取对其套接字的引用,您可以在 documentation.

中阅读相关内容