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