我一直在观看 Virgil 在 Google I/O 上关于 REST-heavy 应用程序的演讲。
Google I/O 2010 - Android REST 客户端应用程序
尽管记事本教程直接从 UI 层进行数据库调用,但 Virgil 建议在服务中进行数据库调用。
目前,我的 Activity 的 onCreate 方法使用扩展的 ContentProvider 来访问 SQLite 数据库以查询 Cursor 以附加到 Activity 的 ListView。
我想将此代码移动到服务中。很容易。我的问题是,将光标传输回 UI 层的适当方法是什么?我已经看到提出的许多问题,并且似乎总是有人建议有更合适的方法来做到这一点。那是什么方法?
更具体地说,到目前为止,我认为 Activity 应该注册为某种监听器。当在 Service 中检索到 Cursor 时,会向 UI 层设置通知以访问它。服务将它推到哪里以便活动可以抓住它?
另外,我考虑的架构是有一个扩展的服务,它被活动调用。在这个服务中,数据库事务将通过使用扩展的 ContentProvider 进行,任何监听的活动都将被通知,并且将启动线程以访问 Web 服务。所以,我有 1 个扩展服务、1 个扩展 ContentProvider 和几个用于不同 Web 服务的扩展线程。这似乎可以接受吗?