Car*_*Lee 15 sqlite android android-contentprovider
我有一个ContentProvider处理与我的应用程序相关的所有数据插入和检索,我遵循Virgil Dobjanschi在Google I/O上建议的模式.我正在使用第一种模式.
我的问题是我有一个逻辑实体,由数据库中的多个表表示.
例如,我有一个Articles表和一个ArticleExtras表.文章代表文章本身,而ArticleExtras代表关于某些文章的附加信息,如评论数量.
我在UI中使用CursorAdapter在ListView的一行中显示文章标题和该文章的注释数.
为了实现这一点,我left outer join ArticleExtras on在Article表的ContentProvider查询方法中添加了一个语句,以便CursorAdapter与Article本身一起获取ArticleExtras.
当从Web获取新文章时,我通过ContentProvider将其插入到数据库中,然后通知CursorAdapter并更新UI,这部分按预期工作.
但是,当我取的评论(ArticleExtras)的数量,我想同样的CursorAdapter,这是看在变化content://com.myapp.content/Articles,通知,也让我可以在ListView更新我行.
我当前的实现是这样的:在将ArticleExtras插入数据库之后,我启动一个新查询来检查Articles表是否有任何与我刚刚插入的ArticleExtras相关的行.如果是这样,我将为该文章创建一个新的uri(例如:) content://com.myapp.cotent/Articles/123,并调用getContext().getContentResolver().notifyChange(uri, null),因此正在监视此文章更改的相应CursorAdapter将收到通知.
方法是正确的,还是有更好的方法来实现我想要的?
Checkout ContactsProvider2,在其中它们将通知uri设置AUTHORITY_URI为对提供者中的其他URI似乎是一个全部捕获.我有相同的探测器,我自己尝试了这个表,并在这些表上有多个表和连接,它工作正常.
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |