【发布时间】:2010-08-20 18:52:01
【问题描述】:
我正在观看有关此主题的 2010 年 Google I/O 视频,我有几个问题需要确保我能正确理解。
Google I/O 2010 - Android REST client applications
请注意,我对 CursorAdapters 的了解也非常有限
现在我的应用程序只有一个 UI 层。我使用一些 Google 教程创建了一个名为 DbAdapter 的对象,以在该数据库中创建一个小型数据库和一个表。
我创建了一个类,我调用 DataBroker(扩展 ContentProvider)来管理从数据库中检索数据并调用 Web 服务来更新数据。
场景:
1) 假设我想在我的 ListActivity 中显示一个项目列表。我是否正确假设我将在我的 DataBroker 中编写一个函数,该函数为我的数据库中保存这些项目的表创建一个游标,启动一个服务,该服务启动一个线程,该线程调用 Web 服务以获取其他项目,然后返回游标到我的 UI 线程?这样做可能会在 Web 服务完成之前将光标返回到我的 UI 线程,但是,我假设一旦 CursorAdapter 有光标,它会自动显示对该数据库表所做的任何更改,是吗?
2) 现在我的 ListView 中有一个项目列表。假设我给用户一些删除项目的功能。用户执行此功能。它应该调用我的 DataBroker 中的一个函数,该函数更新我的数据库中与该项目对应的行,将状态列设置为 STATE_DELETING (这将从 ListView 中删除该行,因为 Cursor 有一个不包括此状态的子句),然后触发服务会触发访问我的 Web 服务的线程,然后在完成后删除数据库中的行?
另外,假设我有多个活动,我是否正在为每个活动设置一个静态游标和一个列表,在活动的 onCreate 中抓取该游标,如果该游标为空,则点击我的 DataBroker?
【问题讨论】:
-
我想数据库命中也需要在服务中。那么我要让服务(命中数据库)启动服务(命中网络服务)吗?
-
我认为我更倾向于 ContentProvider 模型。如果有人知道的话,我真的可以使用带有一些代码摘录的教程。
标签: android database web-services model cursor