我正在开发一款从服务器显示数据的应用程序。但是,该服务器不是我的,也不是很稳定。过多的连接会导致服务器崩溃。
在我的主要活动中有一个到服务器的套接字,但有时我想打开读取数据并显示它的子活动。我的问题是,我无法使用相同的套接字来实现这一点,必须为每个活动打开一个新套接字。 每个活动都有一个线程,负责从套接字读取数据,并根据需要更新该活动上的UI元素。
为了在多个活动中使用相同的套接字,我尝试在启动新活动之前关闭一个活动的inputReader,但这只会使应用程序挂起。如果我将其保持打开状态,则新活动中的新线程永远不会收到任何数据。在启动新活动之前杀死线程是不可能的,因为线程通常会被read()函数阻塞。
是否有任何方法可以拥有一个集中化的线程来读取数据,然后将数据发送到其他所有活动中的所有其他线程,以便我不必在每个活动中打开新的套接字?
我感觉这是一个非常基本的问题,但我却找不到解决方案。
在我的主要活动中有一个到服务器的套接字,但有时我想打开读取数据并显示它的子活动。我的问题是,我无法使用相同的套接字来实现这一点,必须为每个活动打开一个新套接字。 每个活动都有一个线程,负责从套接字读取数据,并根据需要更新该活动上的UI元素。
为了在多个活动中使用相同的套接字,我尝试在启动新活动之前关闭一个活动的inputReader,但这只会使应用程序挂起。如果我将其保持打开状态,则新活动中的新线程永远不会收到任何数据。在启动新活动之前杀死线程是不可能的,因为线程通常会被read()函数阻塞。
是否有任何方法可以拥有一个集中化的线程来读取数据,然后将数据发送到其他所有活动中的所有其他线程,以便我不必在每个活动中打开新的套接字?
我感觉这是一个非常基本的问题,但我却找不到解决方案。