我正在开发 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/