我有一个Android应用程序,以线程会话格式显示用户SMS;这是每个项目显示对话中最近传入或传出消息的显示名称(如果可用),联系人照片,MSISDN和时间戳/预告片。
问题是在Android中执行此操作实际上并不那么容易。直接查询线程会返回有限的信息,因此例如时间戳不可用。查询所有消息将返回我想要的所有数据,但是我必须对所有数据进行排序,找到最新消息,总计会话大小总数等等。作为一个额外的复杂功能,草稿是自定义的(不是与所有其他消息一起保存的标准草稿),也必须添加到混合中。
后一种方法导致了一种可怕的方法,使用后者,我抓住所有东西,将所有看到数据从Cursor转到HashMap到List的排序,最后一个适配器用于显示目的。这自然会导致严重的性能问题,用户必须等待几秒钟才能刷新屏幕。
所以我的问题是,是否有更有效的方法来执行此操作,例如使用原始SQL查询消息,这不会对性能产生如此大的影响?