Android sql查询无限循环或服务

时间:2015-07-07 01:42:04

标签: android views

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

  1. 存储新闻的数据库(Id,类别,标题)
  2. 定期轮询外部来源以获取db
  3. 中的最新新闻和商店的服务
  4. 显示最新消息的视图
  5. 从下拉菜单中,如果用户选择“政治”类别,则会启动一个视图,该视图将显示与政治相关的新闻并实时更新(一旦新消息插入数据库中)。

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

    是否有本机android功能可以执行此操作 - 无休止地查询db。 还有其他更好的方法吗?

    感谢。

1 个答案:

答案 0 :(得分:1)

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

基本结构如下:

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

您应该阅读Content ProvidersLoaders的指南,也可以阅读Intent Services