我已经阅读了很多关于使用BaseAdapter时引发的异常的信息,但似乎找不到其他解决方案:
确保适配器的内容不是从后台线程修改的
我要实现的是在内存中保留消息队列的副本,并使用此消息队列为我的listview填充baseadapter。我这样做的原因是消息队列将继续从套接字获取消息,即使listview当前不存在(例如聊天窗口)。
当listview位于前台、baseadapter绑定到消息队列数据且消息进入套接字时,问题就出现了。将新消息添加到队列将引发上述异常。除非我用消息队列预先填充baseadapter(就像baseadapter有自己的消息队列一样)并在新消息传入时更新它们,否则我无法找到解决此问题的方法。
我真的不想加倍努力让这两个队列保持最新,当然有更好的方法这样做吗?四处发送广播也不起作用,因为为滚动服务的适配器中可能存在延迟,并且进行了notifydatasetchanged调用。
最佳答案
使用Handler
从主应用程序线程修改“消息队列”。
关于android - Android:从后台线程修改适配器内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3708177/