嘿伙计们:)我正在开发一个Android项目,我希望实现一个聊天功能。我知道有几个教程描述了一个聊天应用程序,但我想用我自己的服务器自己做。 在我的MainActivity中,我在一个新线程中启动一个自编写的更新程序(bc。网络操作只能在UI线程之外完成),如果聊天协议存储在我的服务器(RaspberryPi)上,它会永久检查,有来自其他用户的新消息。如果有新消息,则Updater会下载并将其存储在字符串中。这很好用! 现在,当updater收到新消息时,我想用新消息更新Chat-Activity中的ListView。此过程应该可以随时工作并永久更新我的ListView(不是使用刷新按钮或类似的那样)。 我的问题是:我如何以最顺畅的方式实现这一点 - 一种策略,而不一定是代码。一个有效但感觉有点随机的想法是将收到的消息写在共享的首选项文件中,并通过聊天活动中的无限循环将其加载到聊天活动中。 是否有可能在线程中直接在ListView中编写接收到的消息,并且更新程序是MainActivity中的startet。 如果需要我可以上传当前代码,但我想直接做,而不是无限循环。 感谢阅读,甚至可能寻求帮助:)
答案 0 :(得分:0)
您可能希望将收到的消息保存在SQLite数据库中,并且在活动内部,您可以轮询数据库(假设每5秒)并在活动被销毁后停止轮询。
另一种方法是使用视图的静态引用并从不同的类更新它们。即使您尝试从后台线程中更新它们,也可以使用view.post()
SomeActivity.textView.post(new Runnable(){
@Override
public void run(){
SomeActivity.textView.setText("sth");
}
});