Android sql 无限循环查询或服务

Android sql query in endless loop Or service

我正在创建一个简单的新闻应用程序。它有 3 个部分。

  1. 存储新闻(Id、类别、标题)的数据库
  2. 定期轮询外部资源以获取数据库中的最新消息和存储的服务
  3. 显示最新消息的视图

从下拉菜单中,如果用户选择类别 "politics",将启动一个视图,显示与政治相关的新闻并实时更新(一旦新新闻插入数据库.)

我正在考虑创建一个每 2 秒查询一次数据库并在视图中显示结果的服务。

是否有一个本机 android 函数可以执行此操作 -- 无休止地查询数据库。 还有其他更好的方法吗?

谢谢。

我认为你应该认真考虑构建一个 ContentProvider 和一个适当的服务层。每 2 秒查询一次本地数据库是不必要的;您应该改为依赖 CursorLoader 并利用这样一个事实,即它可以在收到数据更改通知时重新查询。

基本结构是这样的:

  • CursorLoader 使用映射到新闻文章内容的 Uri 查询您的 ContentProvider 数据。
  • 其他一些 class(可能是 ServiceIntentService)负责获取新闻文章。随时随地触发此 class。
  • 当文章获取器有新文章时,它会使用 ContentProvider.
  • 插入它们
  • ContentProvider 修改数据库中的新闻文章时,它应该在映射到新闻文章内容的 Uri 上调用 ContentResolver.notifyChange()
  • CursorLoader 收到此通知并自动为您重新查询。

您也应该阅读 Content Providers and Loaders, and maybe Intent Services 的指南。