java - 群聊中参与者列表状态查询的设计模式

标签 java android design-patterns

我正在开发 Android 上的群聊应用程序。

目前,我通过点击群聊屏幕上的按钮来显示参与者列表。 我需要显示参与者列表中每个参与者的离线/在线状态。

目前,我通过为每个参与者创建一个线程并向服务询问其状态来获取离线/在线状态。

因此,有 n 个线程为 n 个参与者运行。

我想改变这个设计/优化这个代码,并在两者之间引入某种管理器或其他什么。

按照目前的方法,手机功耗很高,我需要以某种方式降低功耗,即优化代码。

我应该使用哪种设计模式或技术来优化这个问题?

代码就像

    while(all contacts)
    {
       AsyncTask.execute(new Runnable() {
                    @Override
                    public void run() {
                       //error handling
                       checkPresenceByContactId(contactId);
                       //error handling
                    }
    }

最佳答案

您可以考虑使用 observer pattern监视您感兴趣的事件,并在发生变化时适当通知观察者列表,以便他们做出相应的响应。

关于java - 群聊中参与者列表状态查询的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800599/

相关文章:

java - 如何在where子句中使用多个条件在mongodb java中搜索

java - String[] strings = TextUtils.split(line, "-");

android - 记住jquery mobile中的最后一页

android - 如何使用 insert-koin 在内容提供者中注入(inject)数据存储库实例

design-patterns - 将依赖传递给一个本身不使用它但将其传递给一些内部使用的类的类是否正确

javascript - 模块模式: setting module-wide arrays

java - 转置数组未正确打印

Java - 对 Math.random() 的多次调用搞乱了循环

c# - 根据类型添加行为的最佳方式

java - 从 List<Byte> 获取 byte[]