android - 从服务、 Activity 、 fragment 等通知数据库对 fragment 的更改

标签 android android-fragments

我的应用程序有很多 fragment ,其中很多都是从 ListFragment 扩展而来的,并且有用于读取数据库 (SQLite) 的适配器。我的应用程序只有一个 Activity (目前),并且在 Activity 启动时绑定(bind)了一个服务。

我的问题是当服务或其他 fragment 对数据库进行更改时如何通知 fragment 。

我的应用程序架构示例

MainActivity
  tabhost
   fragment
     listfragment
     listfragment
   fragment
     fragment
     gridfragment
   fragment

MainService
  comunication_server
    send_data
    receive_data

如您所见,我的应用程序有几个 fragment ,我想通知 fragment 数据已更改。或者至少启动一个内部广播可以听到像iNotifyPropertyChange .NET C#/WPF这样的 fragment

最佳答案

考虑实现 CursorLoaders。他们将使您能够异步加载您的列表,并且他们将监控您的数据源以进行更改并自动更新列表。它们非常容易实现。

Lars Vogal has a neat little tutorial on them.

关于android - 从服务、 Activity 、 fragment 等通知数据库对 fragment 的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16042480/

相关文章:

java - 为 ACTION_SHOW 传递两个数据模式 Intent

java - java中如何知道点击了哪个 View ?

java - 如何验证用户是否有 Google Play 中的最新更新

android - 使用兼容性库时 setRetainInstance 不适用于 ListFragment

android - 如何理解为什么 "Android app is incompatible with some specific devices"

android - 没有足够的信息来推断类型变量 T

android - 如何在android应用中实现Navigation Drawer + 全新的Toolbar?

java - 通过替换 fragment 更新主要内容时出错

android - 当我在 Activity 中并使用 finish() 方法时,如何重新加载 fragment 页面?

android - NavController 在设备旋转后没有当前导航节点