如何在我的内容观察者中获取插入行的URI?

时间:2011-12-08 14:48:50

标签: android contentobserver

在我的应用程序中,我从不同的类中插入数据库中的值,这给了我插入行的id。 我在我的UI中注册了它的观察者,每当插入任何行时,我的UI内容观察者都会被调用。 这两个类完全不同,所以我发现很难插入行id。 有没有办法在我的内容观察器中获取此行ID,以便我可以相应地更新我的UI?

P.S。 context.getContentResolver()。notifyChange(uri,null);不是我的解决方案,因为我希望在UI上实现(更新有效的更改)。

2 个答案:

答案 0 :(得分:2)

插入新行时,您必须手动调用notifyChange

context.getContentResolver().notifyChange(uri, null);

插入行的代码应该可以访问新的rowid,并且应该能够构造要传递给notifyChange的URI。当调用通知更改时,应该更新所有ContentObservers

答案 1 :(得分:2)

现在在android api 16中,有可能通过onChange的版本获取OnChage方法中修改行的URI,该版本将URI作为参数。您可以在Content Observer文档中找到有关它的更多详细信息 http://developer.android.com/reference/android/database/ContentObserver.html

对于较旧的api版本,我不确定是否有解决方案(不添加更多逻辑,例如在数据库上实现标志)。我在“getting changed uri on ContentObserver Onchange on older versions of the API”上专门询问了关于旧api的问题,并没有得到任何答案=(