这是一个普通的java问题,与Android没有多大关系。
在我的应用程序中,我有一个实现Comparable
的中等复杂类的一些对象的列表。 compareTo()
方法的结果取决于某些字段。当在比较期间未修改元素时,该方法是一致的并且不违反比较合同。
现在问题。该列表必须偶尔排序一次。但同时,某些项目可能会被后台任务更新,这意味着compareTo()
的结果会发生变化。这就是违反合同的地方。
据我所知,最简单的答案是,不要在排序过程中更新列表。但它是一个移动应用程序。它必须是响应式的,用户可以随时刷新列表。
这个问题的优雅方法是什么?使用同步还是某种锁?
提前致谢。
答案 0 :(得分:1)
我会同时在列表上进行同步,这样会很好。