Android架构:我们应该把Cursor放在哪里?

时间:2010-12-30 12:55:43

标签: android

情景:

public class MyApplication extends Application{...}

三项活动,概述,清单和地图,
显示仅提供不同UI / UX的相同数据

数据输入Contentprovider数据库并经常由SyncAdapter外部更新,
另一个申请的一部分。

将Contentprovider中的数据读入光标。
做cursor.setNotificationUri(),
使光标监听db / Uri更改。

Alt1。将光标保持在MyApplication中 然后,概述,列表和地图向MyApplication询问数据 在数据库更改时,MyApplication保存对每个活动的引用 并通知他们再次从MyApplication请求数据。

Alt2。在每个活动中按住一个光标 在db更改时,每个Activity再次重新查询光标以获取数据。

我们应该把光标放在哪里?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但没有数据库和光标,只有简单的网页请求\响应 当你的活动在请求响应中死亡时,你将很快开始面对的问题是什么啊。 我建议如下:

  1. 做一个你将继承的基础活动 从那将包含一个游标 查询。
  2. 确保您有填充方法 onResume中带有数据的光标 开始听广播 接收机。
  3. 在您完成数据库更新时 单独的线程,通知所有 接收机。
  4. 当您在创建时执行检查 DB中的数据,看你是否错过了 来自广播的电话,因为你的活动 已经死了。
  5. 所以基本上你会在每个活动中都有一个光标,但不需要通过代码来管理它,除非你需要做一些不标准的事情。一旦活动消失,不要忘记丢弃光标。