我面对这种情况,在我的聊天应用程序中,我维护服务中的对话,当添加新消息时,我需要更新列表视图,即活动中的片段内部。 我试图更新对话,然后发送一个以片段形式收到的广播,它似乎工作但过了一段时间我意识到有时候我遇到了IllegalStateException的崩溃。 我认为这是一个微不足道的情况,那么必须有一个标准/通用的方法来处理这个问题。 注意:我在我的应用程序中使用Otto,如果我尝试通过它通知用户界面,它可以工作吗? 提前致谢。
答案 0 :(得分:0)
由于是聊天,因此您可能会在某个案例中保留一些历史记录,以向用户显示之前/已接收的消息。以下是最重要的方法:
使用DB。 DB存储所有消息等。服务更新DB,发送本地广播,Loader接收广播并触发onContentChanged,加载器从DB加载数据,UI(片段,活动等)从加载器接收新数据。
使用单例管理器保存(当然仅在运行时)消息。一旦收到,服务告诉经理添加新消息。 UI已订阅经理以收听更改。经理会通知订户有关新消息的信息。
我确信还有其他方案和解决方案,具体取决于您的具体操作。