dor*_*uck 54 sqlite android android-contentprovider android-loadermanager
我知道这已经讨论过但我想问一下目前的情况.我是否必须创建一个ContentProvider以将CursorLoader与sqlite数据库结合使用?
我发现
没有ContentProvider的CursorLoader用法
正如Emmby评论的那样,看起来正是我所希望的
因此提到了另一种解决方案
https://github.com/commonsguy/cwac-loaderex
还指出了一些缺点
当然,在使用LoaderManager时,我们希望获得它所引入的所有好处.所以我的问题是,如果有一种方法可以使用LoaderManager连接sqlite数据库,而无需实现内容提供程序,但具有它的所有好处.
谢谢
Ale*_*ood 66
您在帖子中提到的两个实现都提供了CursorLoader 除基础内容更改后接收通知的能力之外的所有好处.
我最近一直在研究这个问题,我可以自信地告诉你,Android API目前还没有提供只使用raw的方法SQLiteDatabase(它只提供ContentResolver#notifyChange()和Cursor#setNotificationUri()方法,用于通知所有Cursor注册的某个通知Uri).
那就是说,你现在的选择是:
自己实现一个能够从SQLiteDatabase内容更改时接收通知的观察者,并以某种方式将这些通知转发给Loader应用程序中的所有现有s.我写了一篇非常广泛的博客文章,介绍如何实现Loader可能会派上用场的s,如果你想接受这个挑战的话.要么...
使用Mark Murphy的LoaderEx库,只使用AsyncTask他的库提供的操作进行数据库修改.需要注意的是,为什么他的任务刷新的原因Loader是因为他们所谓onContentChanged的Loader插入/更新后立刻/执行,有效地告诉删除Loader的内容发生了变化,它应该刷新其数据.
只需使用a ContentProviderwith a CursorLoader,您就可以使用该ContentResolver#notifyChange()方法通知CursorLoader已发生内容更改.
我正试图找出一个更好的解决方案,如果我找到/实现一个,我将在未来报告,但现在这些必须要做.
| 归档时间: |
|
| 查看次数: |
20895 次 |
| 最近记录: |