我正在创建一个简单的新闻应用。它有3个部分。
从下拉菜单中,如果用户选择“政治”类别,则会启动一个视图,该视图将显示与政治相关的新闻并实时更新(一旦新消息插入数据库中)。
我正在考虑创建一个服务,每隔2秒查询一次数据库并在视图中显示结果。
是否有本机android功能可以执行此操作 - 无休止地查询db。 还有其他更好的方法吗?
感谢。
答案 0 :(得分:1)
我认为你应该认真考虑建立一个ContentProvider
和一个合适的服务层。每2秒查询一次本地数据库是不必要的;相反,您应该依赖CursorLoader
并利用它可以在收到数据更改通知时重新查询的事实。
基本结构如下:
CursorLoader
使用映射到新闻文章内容的Uri向您的ContentProvider
查询数据。Service
或IntentService
)负责获取新闻文章。然而,无论何时你想要触发这个类。ContentProvider
。ContentProvider
修改数据库中的新闻文章时,应该在Uri上调用映射到新闻文章内容的ContentResolver.notifyChange()
。CursorLoader
收到此通知并自动为您重新查询。您应该阅读Content Providers和Loaders的指南,也可以阅读Intent Services。