我正在经历一些设计困境,我一直在瞄准Android 2.3.3并拥有一个ContentProvider的自定义实现。然后我有一类静态方法来抽象内容提供者 - 根据我的查询为我提供表示每个实体(行)的对象。有一段时间,我对这样的工作感到非常舒服,直到我开始想在一些地方使用整个系列,进行“打击测试”并绘制到屏幕上。然后,我对让对象表示保持最新状态感到头痛,并且此时已决定我需要退后一步并重新考虑在何处采取此操作。内容提供者:用静态外观包装?
正如我所说,我目前使用2.3.3,并认识到在3.0 CursorLoader克服了我遇到的很多问题。尽管如此,我仍然需要支持智能手机,所以除非有回报,否则我不能这样做。
作为一个临时解决方案,我开始注册notifyChange侦听器,以便可以用我的原始查询重建集合,但这会让我感觉CPU非常密集并且速度可能很慢。我还没有决定是否应该使用我的静态外观进行回滚,而是使用Activity中过时的managedQuery调用。
因此,我有两个问题:
1)是否有preferrable的方式,以避免对基于一个ContentProvider的收集工作的问题是什么?
2)您有任何关于在活动中使用原始游标的建议吗?我应该让它们脱离它们还是使用光标原样工作?我当然觉得在执行查询时他们应该在AsynTask中,但在那之后我可以在任何地方使用它们?
我曾经想过的一个问题是静态的,这种方法使得代码的依赖性是隐含的。应该使用对象实例。这不会影响它在创建方法中使用的活动(不会使用params),但会影响异步任务和其他组件 – Uniqe 2011-05-26 11:03:58