Content Provider中行和列级别观察的通知/事件

时间:2015-03-17 17:17:21

标签: android android-contentprovider

我有内容提供商,其中有一个表。我想知道何时修改表行。我正在使用Table Observer作为表URI,它确实告诉表何时被修改。但是,它没有提供有关修改哪一行的更多信息,也没有提供修改哪些列的信息。我正在寻找类似于iOS API" handleManagedObjectContextDidChangeNotification"。是否有任何可用于行和列级别观察的开源库或API?

2 个答案:

答案 0 :(得分:3)

ContentObserver以及整个ContentProvider框架不支持您想要的内容。

如果提供商及其消费者位于同一个应用中,您可以使用活动总线筹集更多细粒度的活动。常见的事件总线实现包括LocalBroadcastManager,greenrobot的EventBus和Square的Otto。

如果提供商及其消费者位于不同的应用程序中,您将被限制使用系统级广播或类似的IPC机制,您可以更好地控制协议。

答案 1 :(得分:0)

将基于身份的URI发送到您的contentobserver。然后,contentObserver可以使用id来访问已更改的行。

示例在uri中的mytable的rowid 323。

内容://com.example/mytable/323

很抱歉,我无法从这台电脑上访问我的Android开发工具,或者我可以提供更准确的示例。