Android sql 无限循环查询或服务
Android sql query in endless loop Or service
我正在创建一个简单的新闻应用程序。它有 3 个部分。
- 存储新闻(Id、类别、标题)的数据库
- 定期轮询外部资源以获取数据库中的最新消息和存储的服务
- 显示最新消息的视图
从下拉菜单中,如果用户选择类别 "politics",将启动一个视图,显示与政治相关的新闻并实时更新(一旦新新闻插入数据库.)
我正在考虑创建一个每 2 秒查询一次数据库并在视图中显示结果的服务。
是否有一个本机 android 函数可以执行此操作 -- 无休止地查询数据库。
还有其他更好的方法吗?
谢谢。
我认为你应该认真考虑构建一个 ContentProvider
和一个适当的服务层。每 2 秒查询一次本地数据库是不必要的;您应该改为依赖 CursorLoader
并利用这样一个事实,即它可以在收到数据更改通知时重新查询。
基本结构是这样的:
CursorLoader
使用映射到新闻文章内容的 Uri 查询您的 ContentProvider
数据。
- 其他一些 class(可能是
Service
或 IntentService
)负责获取新闻文章。随时随地触发此 class。
- 当文章获取器有新文章时,它会使用
ContentProvider
. 插入它们
- 当
ContentProvider
修改数据库中的新闻文章时,它应该在映射到新闻文章内容的 Uri 上调用 ContentResolver.notifyChange()
。
-
CursorLoader
收到此通知并自动为您重新查询。
您也应该阅读 Content Providers and Loaders, and maybe Intent Services 的指南。
我正在创建一个简单的新闻应用程序。它有 3 个部分。
- 存储新闻(Id、类别、标题)的数据库
- 定期轮询外部资源以获取数据库中的最新消息和存储的服务
- 显示最新消息的视图
从下拉菜单中,如果用户选择类别 "politics",将启动一个视图,显示与政治相关的新闻并实时更新(一旦新新闻插入数据库.)
我正在考虑创建一个每 2 秒查询一次数据库并在视图中显示结果的服务。
是否有一个本机 android 函数可以执行此操作 -- 无休止地查询数据库。 还有其他更好的方法吗?
谢谢。
我认为你应该认真考虑构建一个 ContentProvider
和一个适当的服务层。每 2 秒查询一次本地数据库是不必要的;您应该改为依赖 CursorLoader
并利用这样一个事实,即它可以在收到数据更改通知时重新查询。
基本结构是这样的:
CursorLoader
使用映射到新闻文章内容的 Uri 查询您的ContentProvider
数据。- 其他一些 class(可能是
Service
或IntentService
)负责获取新闻文章。随时随地触发此 class。 - 当文章获取器有新文章时,它会使用
ContentProvider
. 插入它们
- 当
ContentProvider
修改数据库中的新闻文章时,它应该在映射到新闻文章内容的 Uri 上调用ContentResolver.notifyChange()
。 -
CursorLoader
收到此通知并自动为您重新查询。
您也应该阅读 Content Providers and Loaders, and maybe Intent Services 的指南。