gpt4 book ai didi

android - 服务中的数据库调用

转载 作者:行者123 更新时间:2023-11-29 02:16:17 25 4
gpt4 key购买 nike

我一直在观看 Virgil 在 Google I/O 上关于 REST-heavy 应用程序的演讲。

Google I/O 2010 - Android REST client applications

虽然记事本教程直接从 UI 层调用数据库,但 Virgil 建议在服务中调用数据库。

目前,我的 Activity 的 onCreate 方法使用扩展的 ContentProvider 来访问 SQLite 数据库以查询 Cursor 以附加到 Activity 的 ListView。

我想将此代码移动到服务中。很容易。我的问题是,将 Cursor 传输回 UI 层的合适方法是什么?我见过很多问题,似乎总是有人建议有更合适的方法来做。那是什么方式?

更具体地说,到目前为止,我认为 Activity 应该注册为某种监听器。当在服务中检索 Cursor 时,通知设置到 UI 层以访问它。 Service 将它推到哪里以便 Activity 可以捕获它?

另外,我考虑的架构是有一个扩展的服务,它被 Activity 调用。在此服务中,数据库事务将通过使用扩展的 ContentProvider 进行,任何监听 Activity 都将收到通知,并启动线程以访问 Web 服务。因此,我有 1 个扩展服务、1 个扩展 ContentProvider 和几个用于不同 Web 服务的扩展线程。这看起来可以接受吗?

最佳答案

我只是在 Activity 中使用 managedQuery 调用来获取 Cursor。这是一个相当轻松的操作,我认为它不会占用 UI。

我创建了一个服务,然后调用网络服务来查找新数据。如果找到新数据,则将其放入我的数据库中并调用 sendBroadcast。我的 Activity 有一个已注册的 BroadcastReceiver,它会收听广播并在 Cursor 上调用 requery()。

关于android - 服务中的数据库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com